E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
剑指offer(java版)
【LeetCode与《代码随想录》】数组篇:做题笔记与总结-
Java版
代码随想录地址是学习过程中的笔记!图来自代码随想录。文章目录理论题目704.二分查找35.搜索插入位置34.在排序数组中查找元素的第一个和最后一个位置69.x的平方根367.有效的完全平方数理论数组是存放在连续内存空间上的相同类型数据的集合。数组下标都是从0开始的。数组内存空间的地址是连续的。因此,我们在添加和删除元素的时候要移动数组内的其他元素。注意:关于C++的vector,它是容器,不是数组
karshey
·
2023-11-11 04:30
leetcode
java
算法
Java 8 的新特性还没用起来,先不要想着升级到 Java 17
最近,一个做Java开发的朋友询问我是否应该将团队项目的
Java版
本从8升级到17。我认为,如果团队连Java8的主要新特性都没有理解并运用,那么花费大量的时间和精力从8升级到17并非明智之举。
创意程序员
·
2023-11-11 03:03
Java
开发语言
java
别迷茫了,师兄告诉你怎么刷 LeetCode
注意,在这过程中,不要左思右盼,不要去搜索与思考到底是刷LeetCode好还是去牛客网刷
剑指Offer
好。
吴师兄学算法
·
2023-11-11 02:36
计算机基础
算法
数据结构
Java实现CRC16校验算法
本文主要记录
java版
的crc校验算法,顺带贴上c的crc校验函数先上c的校验函数,本文
java版
的校验就是根据此函数而来的,希望能帮到大家当时开发时通过一个在线检验工具辅助开发的。
Mr.xiaocao
·
2023-11-11 00:43
java
crc
java spring cloud 工程企业管理软件-综合型项目管理软件-工程系统源码
Java版
工程项目管理系统SpringCloud+SpringBoot+Mybatis+Vue+ElementUI+前后端分离功能清单如下:首页工作台:待办工作、消息通知、预警信息,点击可进入相应的列表项目进度图表
微服务技术分享
·
2023-11-10 22:17
java
spring
cloud
开发语言
Java版
分布式微服务云开发架构 Spring Cloud+Spring Boot+Mybatis 电子招标采购系统功能清单
项目说明随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及审计监督要求;通过电子化平台提高招投标工作的公开性和透明性;通过电子化招投标,使得招标采购的质量更高、速度更快。过招投标文件电子化,节约招标成本,提升企业的资金节约率。开发类型电子招标采
微服务技术分享
·
2023-11-10 22:12
java
架构
分布式
java-POI的Excel默认字体和样式
java中POI的Excel内置字体和样式
java版
poi内置的Font和CellStyle,本来以为是没有的,通过代码测试发现有还不一样。
privateobject
·
2023-11-10 21:53
代码
Java
demo
java
poi
excel
idea
开发语言
二进制中1的个数、数值的整数次方、调整数组顺序使奇数位于偶数前面、链表中倒数k个结点(
剑指offer
11-14)c++版
代码可以跑通,转载请注明出处。#include#include#includeusingnamespacestd;structListNode{intval;structListNode*next;ListNode(intx):val(x),next(NULL){}};voidtest1();//JZ11voidtest2();//JZ12voidtest3();//JZ13voidtest4()
菜鸟numberone
·
2023-11-10 17:38
剑指offer
算法
算法
剑指Offer
JZ13 调整数组顺序使奇数位于偶数前面 C++实现
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。解题思路方法一:原地调整1、思路:使用两个指针i,j,首先令i指向数组首位,令j指向数组中的第一个奇数,然后将[i,j)中的偶数后移,将j先前指向的奇数插入i中,然后令i自增,令j指向下一个奇数,不断重复上述操作,就能完成求
Christian9971
·
2023-11-10 17:37
剑指Offer
牛客网
剑指Offer
-
java版
剑指Offer
-
java版
文章目录
剑指Offer
-
java版
JZ01JZ02替换空格JZ03从尾到头打印链表JZ04重建二叉树JZ05用两个栈实现队列JZ06旋转数组的最小数字JZ07斐波那契数列JZ08
shawfi
·
2023-11-10 17:33
java
算法
【
剑指offer
-C++】JZ81:调整数组顺序使奇数位于偶数前面(二)
【
剑指offer
-C++】JZ81:调整数组顺序使奇数位于偶数前面【二】题目描述解题思路题目描述描述:输入一个长度为n整数数组,数组里面可能含有相同的元素,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前面部分
雾里看花花里看雾
·
2023-11-10 17:02
剑指offer
c++
算法
数据结构
【
剑指offer
-C++】JZ21: 调整数组顺序使奇数位于偶数前面(一)
【
剑指offer
-C++】JZ21:调整数组顺序使奇数位于偶数前面题目描述解题思路题目描述描述:输入一个长度为n整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前面部分,所有的偶数位于数组的后面部分
雾里看花花里看雾
·
2023-11-10 17:32
剑指offer
c++
算法
数据结构
【
剑指offer
-C++】JZ41:数据流中的中位数
【
剑指offer
-C++】JZ41:数据流中的中位数题目描述解题思路题目描述描述:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。
雾里看花花里看雾
·
2023-11-10 17:32
剑指offer
c++
算法
数据结构
【
剑指offer
-C++】JZ77:按之字形顺序打印二叉树
【
剑指offer
-C++】JZ77:按之字形顺序打印二叉树题目描述解题思路题目描述描述:给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替)。
雾里看花花里看雾
·
2023-11-10 17:32
剑指offer
c++
算法
数据结构
剑指offer
(10-11)
10、二叉树的深度(JZ55)描述及示例思路:递归求子树高度,最后再加1即可classSolution{public:intTreeDepth(TreeNode*pRoot){if(pRoot==NULL)return0;returnmax(TreeDepth(pRoot->left),TreeDepth((pRoot->right)))+1;}};这太简单了大家就别试了,我水个博客(狗头)2、按
Yummy・
·
2023-11-10 17:28
剑指offer题目
leetcode
算法
c++
【
剑指Offer
】JZ13调整数组顺序使奇数位于偶数前面 C++
题目地址:牛客网题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。示例1输入[1,2,3,4]返回值[1,3,2,4]思路:建两个vector,奇数放一个,偶数放一个,再把偶数放在奇数后面。代码:classSolution{public:/***代码中的类名、方法名、参数名已
Zero_979
·
2023-11-10 17:55
牛客
数据结构
STL库
c++
算法
【算法】
剑指offer
- JZ81 调整数组顺序使奇数位于偶数前面(二)
题目链接输入一个长度为n整数数组,数组里面可能含有相同的元素,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前面部分,所有的偶数位于数组的后面部分,对奇数和奇数,偶数和偶数之间的相对位置不做要求,但是时间复杂度和空间复杂度必须如下要求。双指针法左指针找偶数,右指针找奇数,找到后进行交换。classSolution{public:/***代码中的类名、方法名、参数名已经指定,请勿修改
JoyCheung-
·
2023-11-10 17:24
【算法】
leetcode
c++
剑指offer
(C++)-JZ21:调整数组顺序使奇数位于偶数前面(一)(算法-其他)
作者:翟天保Steven版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处题目描述:输入一个长度为n整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前面部分,所有的偶数位于数组的后面部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。数据范围:0≤n≤5000,数组中每个数的值0≤val≤10000要求:时间复杂度O(n),空间复杂度O(n)进阶
翟天保Steven
·
2023-11-10 17:53
剑指offer
算法
c++
Java版
本spring cloud + spring boot企业电子招投标系统源代码
项目说明随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及审计监督要求;通过电子化平台提高招投标工作的公开性和透明性;通过电子化招投标,使得招标采购的质量更高、速度更快。过招投标文件电子化,节约招标成本,提升企业的资金节约率。开发类型电子招标采
微服务 spring cloud
·
2023-11-10 17:26
java
招投标系统源码
java版
小程序商城免费搭建-直播商城平台规划及常见的营销模式有哪些?电商源码/小程序/三级分销
1.涉及平台平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务)2.核心架构SpringCloud、SpringBoot、Mybatis、Redis3.前端框架VUE、Uniapp、Bootstrap/H5/CSS3、IOS、Android、小程序4.核心思想分布式、微服务、云架构、模块化、原子化、持续集成、集群部署、前后端
微服务 spring cloud
·
2023-11-10 17:56
java
小程序
spring
cloud
java spring cloud 工程企业管理软件-综合型项目管理软件-工程系统源码
Java版
工程项目管理系统SpringCloud+SpringBoot+Mybatis+Vue+ElementUI+前后端分离功能清单如下:首页工作台:待办工作、消息通知、预警信息,点击可进入相应的列表项目进度图表
微服务商城技术分享
·
2023-11-10 13:00
java
spring
cloud
工程管理系统源码
Linux+MCSM9+Docker 搭建我的世界mohist1.18.2版服务器,MC开服教程
Debian系统使用MCSManager9面板和Docker容器搭建Minecraft
Java版
私服的教程,本教程用的mohist1.18.2服务端,用其他服务端的也可以参考一下。
zeruns
·
2023-11-10 13:39
我的世界
linux
服务器
docker
Minecraft
我的世界
雨云 宿迁 14900KF 高防云服务器性能测评
适合开我的世界
Java版
服务器等需要高单核性能的业务。这篇文章就来实测一下性能给大家看看。雨云优惠注册地址:https://www.rainyun.com/zeruns_?s
zeruns
·
2023-11-10 13:39
服务器
运维
雨云游戏云VPS搭建MCSM面板和我的世界(MC)Paper服务器教程
本教程使用Docker来运行mc服,可以方便切换不同
Java版
本,方便安装多个mc服版本。
雨云官方
·
2023-11-10 13:07
游戏
服务器
运维
linux
雨云服务器搭建MCSM面板和我的世界服务器教程
本教程使用Docker来运行mc服,可以方便切换不同
Java版
本,方便安装多个mc服版本。
雨云官方
·
2023-11-10 13:37
服务器
运维
linux
MCSM面板搭建教程和我的世界Paper服务器开服教程
本教程使用Docker来运行mc服,可以方便切换不同
Java版
本,方便安装多个mc服版本。
zeruns
·
2023-11-10 13:05
我的世界
服务器
运维
java版
小程序商城免费搭建-直播商城平台规划及常见的营销模式有哪些?电商源码/小程序/三级分销
1.涉及平台平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务)2.核心架构SpringCloud、SpringBoot、Mybatis、Redis3.前端框架VUE、Uniapp、Bootstrap/H5/CSS3、IOS、Android、小程序4.核心思想分布式、微服务、云架构、模块化、原子化、持续集成、集群部署、前后端
m0_66404702
·
2023-11-10 11:35
java
小程序
开发语言
java版
直播商城免费搭建平台规划及常见的营销模式+电商源码+小程序+三级分销+二次开发
1.涉及平台平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务)2.核心架构SpringCloud、SpringBoot、Mybatis、Redis3.前端框架VUE、Uniapp、Bootstrap/H5/CSS3、IOS、Android、小程序4.核心思想分布式、微服务、云架构、模块化、原子化、持续集成、集群部署、前后端
m0_66404702
·
2023-11-10 11:05
java
小程序
java版
直播商城免费搭建平台规划及常见的营销模式+电商源码+小程序+三级分销+二次开发
1.涉及平台平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务)2.核心架构SpringCloud、SpringBoot、Mybatis、Redis3.前端框架VUE、Uniapp、Bootstrap/H5/CSS3、IOS、Android、小程序4.核心思想分布式、微服务、云架构、模块化、原子化、持续集成、集群部署、前后端
m0_66404702
·
2023-11-10 11:05
java
小程序
商城免费搭建
Java版
分布式微服务云开发架构 Spring Cloud+Spring Boot+Mybatis 电子招标采购系统功能清单
项目说明随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及审计监督要求;通过电子化平台提高招投标工作的公开性和透明性;通过电子化招投标,使得招标采购的质量更高、速度更快。过招投标文件电子化,节约招标成本,提升企业的资金节约率。开发类型电子招标采
m0_66404702
·
2023-11-10 10:29
java
架构
招投标系统源码
《
剑指offer
》—— 50. 数组中重复的数字(Java)
推荐完整《
剑指Offer
》算法题解析系列请点击《
剑指Offer
》全解析
Java版
题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的。
猿兄
·
2023-11-10 10:46
剑指offer(Java)
算法
java
面试
剑指Offer
剑指offer
java
LeetCode题解——42.连续子数组的最大和(动态规划思想)
题目地址:
剑指Offer
42.连续子数组的最大和-力扣(LeetCode)一.解题思路在这道题中,数组连续是一个很重要的信息。我们可以创建一个数组用于记录每一位对应的最大值。
就要 宅在家
·
2023-11-10 09:54
力扣题解(LeetCode)
剑指offer
连续子数组的最大和(二)
连续子数组的最大和(二)题目要求:输入一个长度为n的整型数组array,数组中的一个或连续多个整数组成一个子数组,找到一个具有最大和的连续子数组。1.子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1,3,7]不是子数组2.如果存在多个最大和的连续子数组,那么返回其中长度最长的,该题数据保证这个最长的只存在一个3.该题定义的子数组的最小长度为1,不存在为空
早田凛凛子
·
2023-11-10 09:24
剑指offer
链表
leetcode
数据结构
剑指 Offer 42. 连续子数组的最大和
题目描述
剑指Offer
42.连续子数组的最大和解法1:动态规划以某个数作为结尾,意思是这个数一定要加上去,那么要看的就是这个数前面的部分要不要加上去,大于0就加,否则就不加。
ЗакатКомова
·
2023-11-10 09:24
Algorithms
算法
leetcode
动态规划
力扣
剑指offer
第42题.连续子数组的最大值题解
题解题目思路代码题目思路这道题用到了动态规划的思路,私认为动态规划从开销上是优胜于分治算法的。我们可以从最暴力的双重for循环开始寻找思路。暴力算法无非就是固定一个下标值,找出这个下标到数组末尾的这么多个子数组中,值最大的一种情况。但是我们在暴力的过程中是可以发现,有些情况是直接可以摒弃的。比如当前的下标所对应的值是负数时,会拖累到子数组后面的部分,就应该摒弃。于是,改良后的动态规划算法也呼之欲出
喝瓶rio再跑
·
2023-11-10 09:52
力扣题解
算法
动态规划
leetcode
数据结构
剑指offer
题解(连续子数组的最大和)
题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的
lonier_
·
2023-11-10 08:49
jianzhioffer
Kafka 安装与配置
可以使用以下命令检查
Java版
本:java-version如果尚未安装Java,请根据实际需求安装合适版本的JDK。1.2下载K
~奔跑的简默~
·
2023-11-10 05:22
Kafka系列
kafka
分布式
LeetCode151 翻转字符串里的单词 &
剑指Offer
58 - I 翻转单词顺序
LeetCode151翻转字符串里的单词&
剑指Offer
58-I翻转单词顺序题目解题解题一:使用语言特性解题二:队列解题三:原地翻转题目解题解题一:使用语言特性//javascriptvarreverseWords
La vie est belle❤️
·
2023-11-10 05:17
剑指
Offer
刷题笔记
字符串
双指针
(
剑指Offer
58 - I.)Leetcode#151. 翻转字符串里的单词(Java解法+双指针解法)
问题描述:给定一个字符串,逐个翻转字符串中的每个单词。说明:无空格字符构成一个单词。输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。示例1:输入:"theskyisblue"输出:"blueisskythe"示例2:输入:"helloworld!"输出:"world!hello"解释:输入字符串可以在前面或者后面
张某某。paranoia
·
2023-11-10 05:39
LeetCode刷题
java
数据结构
字符串
指针
java
leetcode
CSDN每日一题学习训练——
Java版
(克隆图、最接近的三数之和、求公式的值)
版本说明当前版本号[20231109]。版本修改说明20231109初版目录文章目录版本说明目录克隆图题目解题思路代码思路参考代码最接近的三数之和题目解题思路代码思路参考代码求公式的值题目解题思路代码思路参考代码克隆图题目给你无向连通(https://baike.baidu.com/item/连通图/6460995?fr=aladdin)图中一个节点的引用,请你返回该图的深拷贝(https://b
放下华子我只抽RuiKe5
·
2023-11-10 05:30
算法练习笔记
学习
java
开发语言
算法
数据结构
java版
商城免费搭建之直播带货直播订单 Spring Cloud+SpringBoot+mybatis+uniapp b2b2c o2o 多商家入驻商城 直播带货商城 电子商务
1.涉及平台平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务)2.核心架构SpringCloud、SpringBoot、Mybatis、Redis3.前端框架VUE、Uniapp、Bootstrap/H5/CSS3、IOS、Android、小程序4.核心思想分布式、微服务、云架构、模块化、原子化、持续集成、集群部署、前后端
2301_77700816
·
2023-11-10 05:18
java
spring
cloud
spring
boot
商城免费搭建
java版
直播商城免费搭建平台规划及常见的营销模式+电商源码+小程序+三级分销+二次开发
1.涉及平台平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务)2.核心架构SpringCloud、SpringBoot、Mybatis、Redis3.前端框架VUE、Uniapp、Bootstrap/H5/CSS3、IOS、Android、小程序4.核心思想分布式、微服务、云架构、模块化、原子化、持续集成、集群部署、前后端
2301_77700816
·
2023-11-10 05:16
java
小程序
直播商城免费搭建
java版
小程序商城免费搭建-直播商城平台规划及常见的营销模式有哪些?电商源码/小程序/三级分销
1.涉及平台平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务)2.核心架构SpringCloud、SpringBoot、Mybatis、Redis3.前端框架VUE、Uniapp、Bootstrap/H5/CSS3、IOS、Android、小程序4.核心思想分布式、微服务、云架构、模块化、原子化、持续集成、集群部署、前后端
Xiaohong0716
·
2023-11-10 05:35
java
小程序
商城免费搭建
Java版
分布式微服务云开发架构 Spring Cloud+Spring Boot+Mybatis 电子招标采购系统功能清单
项目说明随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及审计监督要求;通过电子化平台提高招投标工作的公开性和透明性;通过电子化招投标,使得招标采购的质量更高、速度更快。过招投标文件电子化,节约招标成本,提升企业的资金节约率。开发类型电子招标采
Xiaohong0716
·
2023-11-10 05:31
java
架构
招投标系统源码
2016腾讯面试经验
于是那些天又把《
剑指offer
》和一些复习资料刷了一遍,然后就开始放弃复习了。前前后后,近1个月的面
科大小笨
·
2023-11-10 04:06
c++算法
面试
剑指offer
算法题027:字符串的排列
小编在求职找找工作期间
剑指offer
上的算法题刷了很多遍,并且每道题小编当时都总结了一种最适合面试时手撕算法的最优解法。
古老的屋檐下
·
2023-11-10 02:02
剑指offer
字符串的排列
剑指offer
算法
面试
80道高频算法题Python版
本文为Python版本答案,对于
Java版
本答案,请在电子书《算法挑战》目录中查看。
自动化代码美学
·
2023-11-10 01:02
算法
python
开发语言
基于grpc协议的微服务架构grpc-nebula
grpc-nebula分为
java版
本和c++版本,本次就只分享
java版
本的。
damokelisijian866
·
2023-11-09 19:38
Java
grpc
微服务
架构
java
Java版
本spring cloud + spring boot企业电子招投标系统源代码
项目说明随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及审计监督要求;通过电子化平台提高招投标工作的公开性和透明性;通过电子化招投标,使得招标采购的质量更高、速度更快。过招投标文件电子化,节约招标成本,提升企业的资金节约率。开发类型电子招标采
m0_72864708
·
2023-11-09 19:47
java
spring
boot
电子招投标系统源代码
java spring cloud 工程企业管理软件-综合型项目管理软件-工程系统源码
Java版
工程项目管理系统SpringCloud+SpringBoot+Mybatis+Vue+ElementUI+前后端分离功能清单如下:首页工作台:待办工作、消息通知、预警信息,点击可进入相应的列表项目进度图表
m0_72864708
·
2023-11-09 19:45
java
spring
cloud
工程企业管理软件源码
上一页
31
32
33
34
35
36
37
38
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他