- 力扣热题100-------54. 螺旋矩阵
海航Java之路
力扣leetcode矩阵java
给你一个m行n列的矩阵matrix,请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例1:输入:matrix=[[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例2:输入:matrix=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]提示:m==matrix.lengthn
- 48. 旋转图像 - 力扣(LeetCode)
Fiee-77
#数组leetcode算法python数据结构数组
题目:给定一个n×n的二维矩阵matrix表示一个图像。请你将图像顺时针旋转90度。你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例1:输入:matrix=[[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]示例2:输入:matrix=[[5,1,9,11],[2,4,8,10],[13,3,6,
- 力扣面试题07 - 旋转矩阵
茶猫_
leetcode矩阵算法c语言
题目:给你一幅由N×N矩阵表示的图像,其中每个像素的大小为4字节。请你设计一种算法,将图像旋转90度。不占用额外内存空间能否做到?示例1:给定matrix=[[1,2,3],[4,5,6],[7,8,9]],原地旋转输入矩阵,使其变为:[[7,4,1],[8,5,2],[9,6,3]]示例2:给定matrix=[[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,
- 力扣刷题记录 238. 除自身以外数组的乘积
lovfam
leetcode算法数据结构
题目描述:给你一个整数数组nums,返回数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积。题目数据保证数组nums之中任意元素的全部前缀元素和后缀的乘积都在32位整数范围内。请不要使用除法,且在O(n)时间复杂度内完成此题。示例:输入:nums=[1,2,3,4]输出:[24,12,8,6]误区:看到这个题目第一个映入脑子的就是把总的乘积分情况(数组中存在
- 力扣 hot100 Day52
124.二叉树中的最大路径和二叉树中的路径被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中至多出现一次。该路径至少包含一个节点,且不一定经过根节点。路径和是路径中各节点值的总和。给你一个二叉树的根节点root,返回其最大路径和。//自己写的classSolution{public:intmaxpasssum(TreeNode*root,int&maxtmp){i
- 力扣 hot100 Day53
qq_51397044
Hot100leetcode算法
200.岛屿数量给你一个由'1'(陆地)和'0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。//改写的classSolution{public:voiddft(vector>&grid,inti,intj){grid[i][j]='0';if(i-1>=0&&grid[i
- 力扣 hot100 Day58
qq_51397044
Hot100leetcode算法
完成了这些题目,都是回溯题目,思路比较统一,懒得一一贴代码了,反正是记录向而非教学向classSolution{private:vector>result;vectorpath;public:voidbacktracking(vector&nums,intindex){result.push_back(path);for(inti=index;i>subsets(vector&nums){inti
- Leetcode力扣解题记录--第136题(查找单数)
不愧是你呀
Leetcodeleetcode算法数据结构
题目链接:136.只出现一次的数字-力扣(LeetCode)题目描述给你一个非空整数数组nums,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。示例1:输入:nums=[2,2,1]输出:1示例2:输入:nums=[4,1,2,1,2]输出:4示例3:输入:nums=[1]输出:1题目作
- 力扣1287:有序数组中出现次数超过25%的元素
快去睡觉~
leetcode算法深度优先
力扣1287:有序数组中出现次数超过25%的元素题目思路代码题目给你一个非递减的有序整数数组,已知这个数组中恰好有一个整数,它的出现次数超过数组元素总数的25%。请你找到并返回这个整数思路哈希表秒了代码classSolution{public:intfindSpecialInteger(vector&arr){unordered_mapum;intn=arr.size()/4;for(autoch
- 差分数组巧解拼车难题
lbflyo
数据结构
力扣1094https://leetcode.cn/problems/car-pooling/车上最初有capacity个空座位。车只能向一个方向行驶(也就是说,不允许掉头或改变方向)给定整数capacity和一个数组trips,trip[i]=[numPassengersi,fromi,toi]表示第i次旅行有numPassengersi乘客,接他们和放他们的位置分别是fromi和toi。这些位
- 高效搜索旋转排序数组:O(logn)解法揭秘
lbflyo
算法leetcode数据结构
力扣中等题:33.搜索旋转排序数组整数数组nums按升序排列,数组中的值互不相同。在传递给函数之前,nums在预先未知的某个下标k(0&nums,inttarget){intn=(int)nums.size();if(!n){return-1;}//数组为空,直接返回-1if(n==1){returnnums[0]==target?0:-1;}intl=0,r=n-1;while(l<=r){in
- 组合问题(分割字符串)
limitless_peter
算法
131.分割回文串-力扣(LeetCode)classSolution{private:vector>result;vectorpath;voidbacktracking(string&s,intstartIndex){if(startIndex>=s.size()){result.push_back(path);return;}for(inti=startIndex;i>partition(st
- 代码随想录训练因第三十天| 39.组合总和 40.组合总和ll 131.分割回文串
焜昱错眩..
算法
39.组合总和:文档讲解:代码随想录|39.组合总和视频讲解:带你学透回溯算法-组合总和(对应「leetcode」力扣题目:39.组合总和)|回溯法精讲!_哔哩哔哩_bilibili状态:已做出思路:这道题目的关键点是给出的数组是无重复的元素,并且同一个数字能无限重复使用,那么使用回溯的话递归条件就按照题目要求,就是组合数的和等于目标值。题目并没有限制组合数个数,所以不用记录每次组合个数。设置三个
- 力扣2055.蜡烛之间的盘子
阳光男孩01
leetcode算法数据结构
力扣2055.蜡烛之间的盘子题目解析及思路题目要求找到询问中的每两个蜡烛之间的盘子数量由于query中下标代表的不一定是蜡烛,可能是盘子因此需要对于每个元素求其左右边最近的蜡烛下标,以此找到答案所在区间预处理每个元素左右最近的蜡烛下标同时求前缀和优化求盘子数量遍历每个询问找到左右端点对应的内部的最近蜡烛(最大区间)代码classSolution{public:vectorplatesBetween
- 力扣2055. 蜡烛之间的盘子
剪一朵云爱着
算法leetcode算法
这一题刚开始没有什么思路,只知道因为数据范围是10000,要利用前缀和预处理出来要求的范围内有几个**,但如何找要求的范围内的左边的|和右边的|呢,我的第一个想法是再写一个for循环找出来最左边和最右边的|的位置,很明显的是,这样的时间复杂度是O(n^2)。看题解才知道:对找|的最左边和最右边的位置,可以用一个二分来优化这样时间复杂度就降到O(nlogn)是满足题意的也就是可以把问题简化为在一段范
- 双指针算法技巧
好学且牛逼的马
算法
双指针-力扣(LeetCode)全球极客挚爱的技术成长平台双指针技巧秒杀七道链表题目|labuladong的算法笔记双指针技巧秒杀七道数组题目|labuladong的算法笔记双指针算法(TwoPointers)详解与Go实现一、什么是双指针算法?双指针算法是一种通过在数据结构(如数组、链表)中设置两个指针(索引),通过移动指针高效解决问题的技巧。核心思想是减少冗余遍历,将原本需要嵌套循环(O(n²
- 力扣(leetcode)第349题两个数组的交集(Python)
十八子是李
leetcodepython算法android开发语言
349.两个数组的交集题目链接:349.两个数组的交集给定两个数组nums1和nums2,返回它们的交集。输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。示例1:输入:nums1=[1,2,2,1],nums2=[2,2]输出:[2]示例2:输入:nums1=[4,9,5],nums2=[9,4,9,8,4]输出:[9,4]解释:[4,9]也是可通过的提示:1List[int]:r
- LeetCode第349题两个数组的交集
无荒111000
算法面试题leetcode算法
349.两个数组的交集题目:给定两个数组,编写一个函数来计算它们的交集。示例1:输入:nums1=[1,2,2,1],nums2=[2,2]输出:[2]示例2:输入:nums1=[4,9,5],nums2=[9,4,9,8,4]输出:[9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。来源:力扣(LeetCode)链接:https://leetcode-cn.com/p
- 412. Fizz Buzz(Swift)
entre_los_dos
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/fizz-buzz题目写一个程序,输出从1到n数字的字符串表示。如果n是3的倍数,输出“Fizz”;如果n是5的倍数,输出“Buzz”;3.如果n同时是3和5的倍数,输出“FizzBuzz”。示例:n=15,返回:["1","2","Fizz","4","Buzz","Fizz","7","8",
- 详解力扣高频SQL50题之1731. 每位经理的下属员工数量【简单】
技术卷
详解力扣高频SQL50题leetcodesqloracle
传送门:1731.每位经理的下属员工数量题目表:Employees±------------±---------+|ColumnName|Type|±------------±---------+|employee_id|int||name|varchar||reports_to|int||age|int|±------------±---------+employee_id是这个表中具有不同值的
- 详解力扣高频SQL50题之2356. 每位教师所教授的科目种类的数量【简单】
传送门:2356.每位教师所教授的科目种类的数量题目表:Teacher±------------±-----+|ColumnName|Type|±------------±-----+|teacher_id|int||subject_id|int||dept_id|int|±------------±-----+在SQL中,(subject_id,dept_id)是该表的主键。该表中的每一行都表示
- 详解力扣高频SQL50题之1084. 销售分析 III【简单】
技术卷
详解力扣高频SQL50题leetcodesqloracle
传送门:1084.销售分析III题目表:Product±-------------±--------+|ColumnName|Type|±-------------±--------+|product_id|int||product_name|varchar||unit_price|int|±-------------±--------+product_id是该表的主键(具有唯一值的列)。该表的每
- MYSQL力扣刷题高频50题基础版
SELECTc.customer_idFROMCustomercGROUPBYc.customer_idHAVINGCOUNT(DISTINCTc.product_key)=(SELECTCOUNT(*)FROMProduct)1757.可回收且低脂的产品表:Products+-------------+---------+|ColumnName|Type|+-------------+-----
- Leetcode力扣 MySQL数据库 1532 最近三笔订单
ziko-1101
Leetcode数据库mysqlleetcode
1532最近三笔订单SQL架构CreatetableIfNotExistsCustomers_1532(customer_idint,namevarchar(10));CreatetableIfNotExistsOrders_1532(order_idint,order_datedate,customer_idint,costint);TruncatetableCustomers_1532;ins
- Leetcode力扣 MySQL数据库 1393 股票的资本损益
ziko-1101
Leetcode数据库leetcodemysql
1393股票的资本损益SQL架构CreateTableIfNotExistsStocks_1393(stock_namevarchar(15),operationENUM('Sell','Buy'),operation_dayint,priceint);TruncatetableStocks_1393;insertintoStocks_1393(stock_name,operation,opera
- Leetcode力扣 MySQL数据库 1440 计算布尔表达式的值
ziko-1101
Leetcode数据库mysqlleetcode
1440计算布尔表达式的值SQL架构CreateTableIfNotExistsVariables_1440(namevarchar(3),valueint);CreateTableIfNotExistsExpressions_1440(left_operandvarchar(3),operatorENUM('>','','y');insertintoExpressions_1440(left_o
- MySQL - 力扣刷题
程序员老石
MySQLjavamysql
1、MySQL查询第二高薪水编写一个SQL查询,获取Employee表中第二高的薪水(Salary)。±—±-------+|Id|Salary|±—±-------+|1|100||2|200||3|300|±—±-------+例如上述Employee表,SQL查询应该返回200作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回null。±--------------------+|Se
- 【LeetCode算法题】和为K的子数组
恩比贤AmbitioN
算法数据结构leetcode
根据题目描述,这是一道关于子数组的算法问题。题目要求从一个整数数组nums中找出所有长度为k的连续子数组,并统计这些子数组中元素和为偶数的子数组数量。题目提供了两个测试用例:用例1:nums=[1,1,1],k=2,输出:2用例2:nums=[1,2,3],k=3,输出:2思路问题分析:我们需要从数组nums中提取所有长度为k的连续子数组。对于每个子数组,计算其元素之和,判断和是否为偶数。统计满足
- 详解力扣高频SQL50题之1141. 查询近30天活跃用户数【简单】
技术卷
详解力扣高频SQL50题leetcodesqloracle
传送门:1141.查询近30天活跃用户数题目表:Activity±--------------±--------+|ColumnName|Type|±--------------±--------+|user_id|int||session_id|int||activity_date|date||activity_type|enum|±--------------±--------+该表没有包含重
- 算法训练Day50 | LeetCode123. 买卖股票的最佳时机III(最多买卖2次);LeetCode188. 买卖股票的最佳时机IV(最多买卖K次)
努力学习的牛宁西
代码随想录训练营leetcode算法职场和发展动态规划python
目录LeetCode123.买卖股票的最佳时机III1.思路2.代码实现3.复杂度分析4.思考与收获LeetCode188.买卖股票的最佳时机IV1.思路2.代码实现3.复杂度分析4.思考与收获LeetCode123.买卖股票的最佳时机III链接:链接:123.买卖股票的最佳时机III-力扣(LeetCode)1.思路本题相对于LeetCode121和LeetCode122难了不少;关键在于至多买
- 矩阵求逆(JAVA)初等行变换
qiuwanchi
矩阵求逆(JAVA)
package gaodai.matrix;
import gaodai.determinant.DeterminantCalculation;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 矩阵求逆(初等行变换)
* @author 邱万迟
*
- JDK timer
antlove
javajdkschedulecodetimer
1.java.util.Timer.schedule(TimerTask task, long delay):多长时间(毫秒)后执行任务
2.java.util.Timer.schedule(TimerTask task, Date time):设定某个时间执行任务
3.java.util.Timer.schedule(TimerTask task, long delay,longperiod
- JVM调优总结 -Xms -Xmx -Xmn -Xss
coder_xpf
jvm应用服务器
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。
典型设置:
java -Xmx
- JDBC连接数据库
Array_06
jdbc
package Util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCUtil {
//完
- Unsupported major.minor version 51.0(jdk版本错误)
oloz
java
java.lang.UnsupportedClassVersionError: cn/support/cache/CacheType : Unsupported major.minor version 51.0 (unable to load class cn.support.cache.CacheType)
at org.apache.catalina.loader.WebappClassL
- 用多个线程处理1个List集合
362217990
多线程threadlist集合
昨天发了一个提问,启动5个线程将一个List中的内容,然后将5个线程的内容拼接起来,由于时间比较急迫,自己就写了一个Demo,希望对菜鸟有参考意义。。
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
public c
- JSP简单访问数据库
香水浓
sqlmysqljsp
学习使用javaBean,代码很烂,仅为留个脚印
public class DBHelper {
private String driverName;
private String url;
private String user;
private String password;
private Connection connection;
privat
- Flex4中使用组件添加柱状图、饼状图等图表
AdyZhang
Flex
1.添加一个最简单的柱状图
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
<?xml version=
"1.0"&n
- Android 5.0 - ProgressBar 进度条无法展示到按钮的前面
aijuans
android
在低于SDK < 21 的版本中,ProgressBar 可以展示到按钮前面,并且为之在按钮的中间,但是切换到android 5.0后进度条ProgressBar 展示顺序变化了,按钮再前面,ProgressBar 在后面了我的xml配置文件如下:
[html]
view plain
copy
<RelativeLa
- 查询汇总的sql
baalwolf
sql
select list.listname, list.createtime,listcount from dream_list as list , (select listid,count(listid) as listcount from dream_list_user group by listid order by count(
- Linux du命令和df命令区别
BigBird2012
linux
1,两者区别
du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和。
- AngularJS中的$apply,用还是不用?
bijian1013
JavaScriptAngularJS$apply
在AngularJS开发中,何时应该调用$scope.$apply(),何时不应该调用。下面我们透彻地解释这个问题。
但是首先,让我们把$apply转换成一种简化的形式。
scope.$apply就像一个懒惰的工人。它需要按照命
- [Zookeeper学习笔记十]Zookeeper源代码分析之ClientCnxn数据序列化和反序列化
bit1129
zookeeper
ClientCnxn是Zookeeper客户端和Zookeeper服务器端进行通信和事件通知处理的主要类,它内部包含两个类,1. SendThread 2. EventThread, SendThread负责客户端和服务器端的数据通信,也包括事件信息的传输,EventThread主要在客户端回调注册的Watchers进行通知处理
ClientCnxn构造方法
&
- 【Java命令一】jmap
bit1129
Java命令
jmap命令的用法:
[hadoop@hadoop sbin]$ jmap
Usage:
jmap [option] <pid>
(to connect to running process)
jmap [option] <executable <core>
(to connect to a
- Apache 服务器安全防护及实战
ronin47
此文转自IBM.
Apache 服务简介
Web 服务器也称为 WWW 服务器或 HTTP 服务器 (HTTP Server),它是 Internet 上最常见也是使用最频繁的服务器之一,Web 服务器能够为用户提供网页浏览、论坛访问等等服务。
由于用户在通过 Web 浏览器访问信息资源的过程中,无须再关心一些技术性的细节,而且界面非常友好,因而 Web 在 Internet 上一推出就得到
- unity 3d实例化位置出现布置?
brotherlamp
unity教程unityunity资料unity视频unity自学
问:unity 3d实例化位置出现布置?
答:实例化的同时就可以指定被实例化的物体的位置,即 position
Instantiate (original : Object, position : Vector3, rotation : Quaternion) : Object
这样你不需要再用Transform.Position了,
如果你省略了第二个参数(
- 《重构,改善现有代码的设计》第八章 Duplicate Observed Data
bylijinnan
java重构
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusE
- struts2更改struts.xml配置目录
chiangfai
struts.xml
struts2默认是读取classes目录下的配置文件,要更改配置文件目录,比如放在WEB-INF下,路径应该写成../struts.xml(非/WEB-INF/struts.xml)
web.xml文件修改如下:
<filter>
<filter-name>struts2</filter-name>
<filter-class&g
- redis做缓存时的一点优化
chenchao051
redishadooppipeline
最近集群上有个job,其中需要短时间内频繁访问缓存,大概7亿多次。我这边的缓存是使用redis来做的,问题就来了。
首先,redis中存的是普通kv,没有考虑使用hash等解结构,那么以为着这个job需要访问7亿多次redis,导致效率低,且出现很多redi
- mysql导出数据不输出标题行
daizj
mysql数据导出去掉第一行去掉标题
当想使用数据库中的某些数据,想将其导入到文件中,而想去掉第一行的标题是可以加上-N参数
如通过下面命令导出数据:
mysql -uuserName -ppasswd -hhost -Pport -Ddatabase -e " select * from tableName" > exportResult.txt
结果为:
studentid
- phpexcel导出excel表简单入门示例
dcj3sjt126com
PHPExcelphpexcel
先下载PHPEXCEL类文件,放在class目录下面,然后新建一个index.php文件,内容如下
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
if (PHP_SAPI == 'cli')
die('
- 爱情格言
dcj3sjt126com
格言
1) I love you not because of who you are, but because of who I am when I am with you. 我爱你,不是因为你是一个怎样的人,而是因为我喜欢与你在一起时的感觉。 2) No man or woman is worth your tears, and the one who is, won‘t
- 转 Activity 详解——Activity文档翻译
e200702084
androidUIsqlite配置管理网络应用
activity 展现在用户面前的经常是全屏窗口,你也可以将 activity 作为浮动窗口来使用(使用设置了 windowIsFloating 的主题),或者嵌入到其他的 activity (使用 ActivityGroup )中。 当用户离开 activity 时你可以在 onPause() 进行相应的操作 。更重要的是,用户做的任何改变都应该在该点上提交 ( 经常提交到 ContentPro
- win7安装MongoDB服务
geeksun
mongodb
1. 下载MongoDB的windows版本:mongodb-win32-x86_64-2008plus-ssl-3.0.4.zip,Linux版本也在这里下载,下载地址: http://www.mongodb.org/downloads
2. 解压MongoDB在D:\server\mongodb, 在D:\server\mongodb下创建d
- Javascript魔法方法:__defineGetter__,__defineSetter__
hongtoushizi
js
转载自: http://www.blackglory.me/javascript-magic-method-definegetter-definesetter/
在javascript的类中,可以用defineGetter和defineSetter_控制成员变量的Get和Set行为
例如,在一个图书类中,我们自动为Book加上书名符号:
function Book(name){
- 错误的日期格式可能导致走nginx proxy cache时不能进行304响应
jinnianshilongnian
cache
昨天在整合某些系统的nginx配置时,出现了当使用nginx cache时无法返回304响应的情况,出问题的响应头: Content-Type:text/html; charset=gb2312 Date:Mon, 05 Jan 2015 01:58:05 GMT Expires:Mon , 05 Jan 15 02:03:00 GMT Last-Modified:Mon, 05
- 数据源架构模式之行数据入口
home198979
PHP架构行数据入口
注:看不懂的请勿踩,此文章非针对java,java爱好者可直接略过。
一、概念
行数据入口(Row Data Gateway):充当数据源中单条记录入口的对象,每行一个实例。
二、简单实现行数据入口
为了方便理解,还是先简单实现:
<?php
/**
* 行数据入口类
*/
class OrderGateway {
/*定义元数
- Linux各个目录的作用及内容
pda158
linux脚本
1)根目录“/” 根目录位于目录结构的最顶层,用斜线(/)表示,类似于
Windows
操作系统的“C:\“,包含Fedora操作系统中所有的目录和文件。 2)/bin /bin 目录又称为二进制目录,包含了那些供系统管理员和普通用户使用的重要
linux命令的二进制映像。该目录存放的内容包括各种可执行文件,还有某些可执行文件的符号连接。常用的命令有:cp、d
- ubuntu12.04上编译openjdk7
ol_beta
HotSpotjvmjdkOpenJDK
获取源码
从openjdk代码仓库获取(比较慢)
安装mercurial Mercurial是一个版本管理工具。 sudo apt-get install mercurial
将以下内容添加到$HOME/.hgrc文件中,如果没有则自己创建一个: [extensions] forest=/home/lichengwu/hgforest-crew/forest.py fe
- 将数据库字段转换成设计文档所需的字段
vipbooks
设计模式工作正则表达式
哈哈,出差这么久终于回来了,回家的感觉真好!
PowerDesigner的物理数据库一出来,设计文档中要改的字段就多得不计其数,如果要把PowerDesigner中的字段一个个Copy到设计文档中,那将会是一件非常痛苦的事情。