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
Q.笔试面试代码题
数字IC设计工程师
笔试面试
经典100题
本文来自芯社区,谢谢。1:什么是同步逻辑和异步逻辑?同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。同步时序逻辑电路的特点:各触发器的时钟端全部连接在一起,并接在系统时钟端,只有当时钟脉冲到来时,电路的状态才能改变。改变后的状态将一直保持到下一个时钟脉冲的到来,此时无论外部输入x有无变化,状态表中的每个状态都是稳定的。异步时序逻辑电路的特点:电路中除可以使用带时钟的触发
zlgybz
·
2023-11-20 22:48
IC
硬件
笔试面试
---2
本文属于转载:http://www.21ic.com/hr/200605/12851.htm模拟电路1、基尔霍夫定理的内容是什么?(仕兰微电子)2、平板电容公式(C=εS/4πkd)。(未知)3、最基本的如三极管曲线特性。(未知)4、描述反馈电路的概念,列举他们的应用。(仕兰微电子)5、负反馈种类(电压并联反馈,电流串联反馈,电压串联反馈和电流并联反馈);负反馈的优点(降低放大器的增益灵敏度,改变
有朋山人
·
2023-11-20 22:39
硬件笔试面试
如何应对大数据分析工程师面试Spark考察,看这一篇就够了
作者丨斌迪、HappyMint来源丨大数据与人工智能(ID:ai-big-data)【导读】本篇文章为大家带来spark面试指南,文内会有两种题型,问答题和
代码题
,题目大部分来自于网络上,有小部分是来自于工作中的总结
AI科技大本营
·
2023-11-20 18:22
最长回文子序列题解 递归+动态规划
从直接递归入手改为动态规划(官方的动态转移方程答案看不懂)当某个字符串是回文序列时,考虑其内部字符串是否还是回文序列,可以看到每次遍历时的步骤是一致的,可以通过递归的方式求解直接递归求解(此
代码题
解超时
bug诗人
·
2023-11-20 08:03
算法
数据结构
2020-12-25今日份力扣==455. 分发饼干
来源:链接:https://leetcode-cn.com/problems/assign-cookies声明:如果我侵犯了任何人的权利,请联系我,我会删除欢迎高手来喷我文章目录题目我的代码双指针大神的
代码题
目假设你是一位很棒的家长
郭大唐
·
2023-11-20 08:46
Leetcode打卡
指针
leetcode
算法
java
leetcode_1877数组中最大数对和的最小值--leetcode刷题之路
leetcode_1877数组中最大数对和的最小值题目描述
代码题
目描述一个数对(a,b)的数对和等于a+b。最大数对和是一个数对数组中最大的数对和。
喝茶的龟壳
·
2023-11-20 05:27
leetcode刷题
leetcode
贪心算法
快速排序
算法
【力扣:python刷题】剑指 Offer 06. 从尾到头打印链表
文章目录题目思路
代码题
目输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
电子小狗
·
2023-11-19 20:11
力扣
剑指Offer
leetcode
链表
算法
python
leetcode每日一题——地图中的最高点(路径更新权值问题)
文章目录题目解题思路解题
代码题
目题目链接解题思路两种解题思路,都是根据题目的意思更新路径信息即可:bfs思路:由于相邻的两个格子必须高度差为1,而水域必须高度为0,所以,直接以水域为bfs源点,进行bfs
C+G
·
2023-11-19 19:44
bfs相关
leetcode
图论
动态规划
[蓝桥杯][2019年第十届真题]Fibonacci 数列与黄金分割
文章目录题目描述输入输出样例输入样例输出c语言AC
代码题
目描述Fibonacci数列是非常著名的数列:F[1]=1,F[2]=1,对于i>3,F[i]=F[i−1]+F[i−2]Fibonacci数列有一个特殊的性质
@玉面小蛟龙
·
2023-11-19 18:42
习题
c语言
字符串相加C++
字符串相加C++题目链接思路分析解题
代码题
目链接字符串相加C++思路分析对于整数相加我们都很熟悉,因此我们需要整数相加进行分解,对于整数相加,我们从低位开始,进行相加,如果相加大于10,进位为1,相加如果小于
不知名唐某人
·
2023-11-19 10:21
LeetCode
字符串
c++
算法
leetcode
[Go版]算法通关村第十三关白银——数字数学问题之数组实现加法、幂运算
=10就退出复杂度:时间复杂度O(n)O(n)O(n)、空间复杂度O(n)O(n)O(n)Go
代码题
目:字符串加法思路分析:定义两指针分别指向两byte数组末尾,从后往前相加,十进制相加余数`=%10`
小小小熊猫5
·
2023-11-19 07:09
算法与数据结构
算法
golang
数据结构
[Go版]算法通关村第十关白银——数组中第K大的数字
目录题目:数组中第K大的数字思路分析:快速排序+剪枝Go
代码题
目:数组中第K大的数字题目链接:LeetCode-215.数组中的第K个最大元素思路分析:快速排序+剪枝在上一关我们学了快速排序,所以这里只需要排序完该数组
小小小熊猫5
·
2023-11-19 07:09
算法与数据结构
算法
换硬币C语言(超详细分析!包会)
换硬币C语言(详解)题目介绍分析题目
代码题
目讲解题目介绍分析通过枚举的方式找出所有可能的找零方案,并统计满足条件的方案的个数。
originalHSL.
·
2023-11-18 18:53
c语言
算法
开发语言
数据结构--树
不论是找工作的
笔试面试
,还是考研的专业课,二叉树所占的比例都是很大的。而在原始的二叉树的基础上,有不断演化出了很多其他基于二叉树的结构,例如本教程涉及的哈夫曼树、红黑树,还有线索二叉树、B+树等等。但
丁川
·
2023-11-17 14:19
数据结构
java
算法
数据结构
树
【数据结构 | 链表】leetcode 2. 两数相加
个人主页:兜里游客棉花糖欢迎点赞收藏✨留言✉加关注本文由兜里游客棉花糖原创收录于专栏【LeetCode】原题链接:点击直接跳转到该题目目录题目描述解题
代码题
目描述给你两个非空的链表,表示两个非负的整数。
兜里有颗棉花糖
·
2023-11-17 01:25
LeetCode
数据结构
leetcode
算法
链表
FPGA/数字IC求职
笔试面试
(1)之IIC协议详解
FPGA/数字IC求职
笔试面试
(1)之IIC协议详解文章目录FPGA/数字IC求职
笔试面试
(1)之IIC协议详解前言一、概述:二、具体协议1.先来大致猜测2.IIC协议时序三、协议实现步骤(以读写EEPROM
Dawn_yuan
·
2023-11-16 23:41
FPGA开发/数字IC求职系列
fpga开发
单片机
硬件工程
驱动开发
【Python】AI 程序设计练习题题解
逻辑斯蒂克函数B.圆的周长C.单词的个数D.反转字符串E.反转数字F.修正线性单元G.打分H.临时抱佛脚I.谁得了二等奖J.简易计算器K.第几天L.解方程M.高空抛物N.海鲜大餐O.最小公倍数P.找书
Q.
-YueLin-
·
2023-11-16 14:49
python
算法
leetcode 367 有效的完全平方数
思考之前看代码随想录的训练营发现他们每天做题老师都会要求在csdn上写博客作为一个思考的成果或者说记录一下,遂以为这样干应该对刷题有很大的帮助,但是一直没有下决心去写,一是自身的懒惰在作祟,二是自身内心觉得写
代码题
解没什么太大的作用
无驰复逸
·
2023-11-16 11:00
leetcode
算法
职场和发展
python基础练习题库实验八
文章目录前言题目1
代码题
目2
代码题
目3代码总结前言关于python小题库的这模块我已经两年半左右没有更新了,主要是在实习跟考研,目前已经上岸武汉某211计算机,目前重新学习这门课程,也做了一些新的题目,
AI敲代码的手套
·
2023-11-16 07:52
python考试复习小题库
python
开发语言
LeetCode高频题41. 缺失的第一个正数
你未来遇到的互联网大厂的笔试和面试考题,基本都是从这上面改编而来的题目互联网大厂们在公司养了一大批ACM竞赛的大佬们,吃完饭就是设计考题,然后去考应聘人员,你要做的就是学基础树结构与算法,然后打通任督二脉,以应对波云诡谲的大厂
笔试面试
题
冰露可乐
·
2023-11-16 02:44
大厂面试高频题之数据结构与算法
leetcode
缺失的第一个正数
缺失正数
缺失
数组缺第一个正数
【考研数据结构
代码题
6】构建二叉树及四大遍历(先中后层)
题目:请你编写完整的程序构建一棵二叉树并对其进行先序遍历、中序遍历、后序遍历与层次遍历,分别打印并输出遍历结果难度:★★★二叉树的存储结构typedefstructNode{chardata;//数据域structNode*left;//左子树structNode*right;//右子树}BiNode,*BiTree;//二叉链表二叉树的构建按照先序遍历的的顺序逐个输入结点的值来构建二叉树,其中,
Aricl.
·
2023-11-15 19:44
#
必知必会代码题
数据结构
考研专业课
C语言解决汉诺塔问题
目录题目对小数值m的简单剖析当m=1时当m=2时函数move的解析当m=3时分析步骤(1)(3)递归步骤(1)的递归分解步骤(2)步骤(3)的递归分解大数值m=64完整
代码题
目Hanoi(汉诺)塔问题。
猪巴戒
·
2023-11-15 18:41
C语言学习
c语言
算法
开发语言
2024秋招C语言嵌入式
笔试面试
题
内容来自网络,侵权联系删除1、floatx与“零值”比较的if语句 constfloatEPSINON=0.00001; if((x>=-EPSINON)&&(x=”或“(Y)?(Y):(X))//结尾没有;分号@20、带参宏与带参函数的区别带参宏带参函数处理时间编译时运行时参数类型无需定义程序长度变长不变占用存储空间否是运行时间不占运行时间调用和返回时占实参如果是表达式容易出问题#def
有风南向
·
2023-11-15 16:42
c语言
开发语言
白兔的分身术(编程奥数)
链接:登录—专业IT
笔试面试
备考平台_牛客网来源:牛客网题目描述白兔学会了分身术。一开始有一只白兔,接下来会进行k轮操作,每一轮中每一只白兔都会变成p只白兔。要求k轮后白兔的总数恰好为n。
晴友读钟
·
2023-11-15 12:38
曾让我“头破血流”的坑题
算法
c语言
排队领水(编程奥数)
链接:登录—专业IT
笔试面试
备考平台_牛客网来源:牛客网题目描述羊村的供水系统搞砸了,隔壁牛村捐赠的的矿泉水刚刚送达,村长让喜羊羊们排队领水,已知有n个羊村村民正在排队取水,懒羊羊不知道他在队伍的具体哪个位置
晴友读钟
·
2023-11-15 12:38
算法
c语言
Java岗大厂面试题——Redis篇
卓景京的同学们也开始迎来了一大波专场招聘会,在激烈的
笔试面试
中一路过关斩将。想要取得满意的offer,那一定要提前做好充足的准备。
澎湖Java架构师
·
2023-11-15 10:05
程序员
java
JavaScript
java
redis
面试
spring
spring
boot
王道数据结构课后
代码题
p18 第10题(c语言代码实现)设将 n(n>1)个整数存放到一维数组 R中。设计一个在时间和空间两方面都尽可能高效的算法。将 R中保存的序列循环左移p(0<p<n)个位置,
视频讲解在这里:p18第10题c语言实现数据结构
代码题
_哔哩哔哩_bilibili这一题与前一题的思路是一样的先将整个顺序表逆置然后逆置前n-left个元素最后逆置后left个元素本题代码如下voidreverse
认真敲代码的小火龙
·
2023-11-15 09:24
顺序表
算法
数据结构
c语言
王道数据结构课后
代码题
p19 第14题请设计一个尽可能高效的算法,计算并输出所有可能的三元组(a,b,c) 中的最小距离。(c语言代码实现)
本题其实就是找a到c的最小值有讲解p19第14题c语言实现王道数据结构课后
代码题
_哔哩哔哩_bilibili下方有图:本题代码如下intabs(inta)//计算绝对值{if(a0){d=abs(a[i
认真敲代码的小火龙
·
2023-11-15 09:24
顺序表
算法
数据结构
c语言
王道数据结构课后
代码题
p40 20.每当在链表中进行一次 Locate(L,x)运算时,令元素值为 X的结点中 freq 域的值增 1,并使此链表中结点保持按访问频度非增(递减)的顺序排列,同时最近访
本题就是找到使用locate(L,x)的次数最高的x,并将他放到链表的最前面,同时最近访问的结点排在频度相同的结点前面本题代码如下linklistlocate(linklist*L,intx){lnode*p=(*L)->next,*q=*L;//p为工作指针,q为p的前驱,用于插入位置while(p&&p->data!=x)//查找值为x的结点{q=p;p=p->next;}if(!p)//不存
认真敲代码的小火龙
·
2023-11-15 09:23
王道课后习题单链表
数据结构
链表
算法
c语言
王道数据结构课后
代码题
p40 6.有一个带头结点的单链表L,设计一个算法使其元素递增有序 (c语言代码实现)
这一题其实用到了直接插入排序的思想视频讲解在这里哦:p40第6题王道数据结构课后
代码题
c语言代码实现_哔哩哔哩_bilibili本题代码为voidpaixu(linklist*L)//对单链表内的元素排序
认真敲代码的小火龙
·
2023-11-15 09:48
王道课后习题单链表
数据结构
算法
c语言
【考研数据结构
代码题
4】求树中度为1的结点数(递归方式)
题目:用C语言描述树的孩子兄弟链表结构,并编写递归程序求树中度为1的结点数难度:★★算法思路:递归地遍历当前结点的左孩子子树与右兄弟子树,分别求二者中度为1的结点数记为h1,h2,若当前结点仅有1个结点,(即左孩子没有右兄弟时)那么总的度为1的结点数为sum1+sum2+1,否则为sum1+sum2//树的左孩子右兄弟链表结构typedefstructnode{intdata;structnode
Aricl.
·
2023-11-15 03:47
#
必知必会代码题
数据结构
考研专业课
【考研数据结构
代码题
2】删除单链表倒数第n个结点
题目:删除单链表倒数第n个结点难度:★算法思路:首先题目没有指明链表的长度,多以首先需要编写一个函数getLength()来求表长,其次删除倒数第n个结点,即删除正数第length-n+1个结点,这是二者之间的关系,可以通过找规律归纳得到,删除单链表中某结点关键是找到该结点的前一个结点,修改指针域即可,最后释放掉被删结点所占内存,如下图所示://链表结点结构typedefstructListNod
Aricl.
·
2023-11-15 03:17
#
必知必会代码题
数据结构
考研专业课
【考研数据结构
代码题
3】用栈实现十进制数转为八进制数
题目:将十进制数m=1348转换成八进制数难度:★算法思路:十进制转八进制的核心原理是“用辗转相除法不断对8取余,最后将余数反向输出”,即先求出来的余数后输出,符合“先进后出”的栈的特性,故设置一个栈来存放余数。十进制转八进制过程示意图代码#include//栈的结构体typedefstructstack{intbase[100];inttop;//指向当前栈顶元素}stack;stacks;//
Aricl.
·
2023-11-15 03:17
#
必知必会代码题
数据结构
考研专业课
【考研数据结构
代码题
5】二叉树搜索指定关键字和其父亲结点
题目:已知一棵二叉树已经存在,二叉树的结点有三个域,分别是左右孩子指针域与数据域,且数据域为字符型,规定指针bt指向根结点。给定一个字符ch,请编写程序实现查找二叉树中是否存在数据域为ch的结点?若存在再找出该结点的双亲结点难度:★★★#include#include//二叉树存储结构typedefstructnode{charkey;//数据域structnode*left,*right;//左
Aricl.
·
2023-11-15 03:46
#
必知必会代码题
考研
数据结构
leetcode(力扣) 123. 买卖股票的最佳时机 III (动态规划)
文章目录题目描述思路分析完整
代码题
目描述给定一个数组,它的第i个元素是一支给定的股票在第i天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成两笔交易。
深度不学习!!
·
2023-11-14 21:03
交流学习
个人笔记
leetcode
python
leetcode(力扣) 188. 买卖股票的最佳时机 IV (动态规划)
文章目录题目描述思路分析完整
代码题
目描述给定一个整数数组prices,它的第i个元素prices[i]是一支给定的股票在第i天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成k笔交易。
深度不学习!!
·
2023-11-14 21:03
个人笔记
交流学习
leetcode
python
leetcode(力扣) 674. 最长连续递增序列 ( 滑动窗口 & 动态规划)
文章目录题目描述思路分析完整
代码题
目描述给定一个未经排序的整数数组,找到最长且连续递增的子序列,并返回该序列的长度。
深度不学习!!
·
2023-11-14 20:53
交流学习
个人笔记
python
leetcode
长文 字节跳动面试高频算法题(先码再看)
今天给大家带来一篇面试高频算法题之栈&队列的详细解析,全文包含9道大厂
笔试面试
算法真题,一举拿下栈和队列这个知识点,让算法不在成为进入大厂的绊脚石。
老程不秃
·
2023-11-14 19:56
程序员
算法
后端
算法
面试
数据结构
程序人生
后端
leetcode-303-区域和检索 - 数组不可变
目录题303-算法1、描述2、提示:3、思路4、
代码题
303-算法1、描述给定一个整数数组nums,处理以下类型的多个查询:计算索引left和right(包含left和right)之间的nums元素的和
会有钱的-_-
·
2023-11-14 04:38
/study/python学习
leetcode
算法
LeetCode303.区域和检索 - 数组不可变
LeetCode刷题记录文章目录题目描述解题思路⌨C
代码题
目描述给定一个整数数组nums,处理以下类型的多个查询:计算索引left和right(包含left和right)之间的nums元素的和,其中left
2021狮子歌歌
·
2023-11-14 04:36
LeetCode
算法
leetcode
数据结构
LeetCode反转链表java_Leetcode 反转链表系列 图解详细过程
对于一个程序猿来说,数据结构和算法的重要性就不用我多说了吧,算法题已然成了现在大厂
笔试面试
的重头戏,废话少说,Leetcode刷起来呀。
军师·Sun
·
2023-11-13 23:28
【数据结构】链表经典OJ题,常见几类题型(二)
目录题型三:链表相交,找相交节点思路解析OJ题实例解题
代码题
型四:链表带环,找入环节点思路解析OJ实例解题
代码题
型三:链表相交,找相交节点思路解析看到这类题型首先要判断链表是否相交,而相交条件:两链尾部节点相同
A-a 墨羽
·
2023-11-13 21:58
数据结构和算法
数据结构
链表
笔试面试
中涉及位运算的题目总结(一)
题目一:题目描述有一个正整数,请找出其二进制表示中1的个数相同、且大小最接近的那两个数。(一个略大,一个略小)给定正整数intx,请返回一个vector,代表所求的两个数(小的在前)。保证答案存在。测试样例:2返回:[1,4]题目分析:对于这道题目,我觉得最重要的就是求一个数的二进制表示中1的个数。关于求一个数的二进制表示中1的个数会有很多种方法:方法1:与1求&运算,依次求出32个比特位中1的个
peiyao456
·
2023-11-13 17:28
牛客刷题
刷题
位运算
面试
二进制
2023《王道数据结构》
代码题
p40 01-02
p40综合应用题01.设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点。问题分析:(1)代码基础中我们删除结点使用的函数参数是头结点和x的值,因此想到递归实现本题时我们传递的参数应该是第一个元素结点和x的值,不断递归调用函数也就是传入的第一个元素节点值不断往后推进的过程,每次调用函数中在函数中处理第一个元素结点即可。(2)再考虑递归函数,分为两部分:第一部分是递归函数的终止条件。也就是
usuyi takumi
·
2023-11-13 04:24
408考研数据结构
数据结构
王道数据结构课后
代码题
p40 7.设在一个带表头结点的单链表中所有元素结点的数据值无序,试编写一个函数,删除表中所有介于给定的两个值(作为函数参数给出)之间的元素的元素 (c语言代码实现)
本题代码为(有注释)voiddelete(linklist*L,intmin,intmax)//删除给定的两个值之间的元素{lnode*p=(*L)->next,*q=*L;while(p!=NULL){if(p->data>min&&p->datanext=p->next;//使q的后继指向p的后继free(p);//释放p的内存p=q->next;//使p指向q的后继}else{q=q->ne
认真敲代码的小火龙
·
2023-11-13 04:23
王道课后习题单链表
数据结构
c语言
算法
链表
王道数据结构课后
代码题
p41 23题链表结点结构为datanext请设计一个时间上尽可能高效的算法,找出由 str1和 str2 所指向两个链表共同后缀的起始位置(c语言代码实现)
23.[2012统考真题]假定采用带头结点的单链表保存单词,当两个单词有相同的后缀时可共享相同的后缀存储空间,例如,“loading”和“being”的存储映像设strl和str2分别指向两个单词所在单链表的头结点,链表结点结构为datanext请设计一个时间上尽可能高效的算法,找出由str1和str2所指向两个链表共同后缀的起始位置本题代码如下//我这个在外面已经计算好了两个字符串的长度,所以直
认真敲代码的小火龙
·
2023-11-13 04:22
王道课后习题单链表
数据结构
算法
链表
王道数据结构课后
代码题
p41 第22题请设计一个尽可能高效的算法,查找链表中倒数第 k个位置上的结点 (k为正整数)。若查找成功,算法输出该结点的 data域的值(c语言代码实现)
22.[2009统考真题]已知一个带有表头结点的单链表,结点结构为datalink假设该链表只给出了头指针list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数)。若查找成功,算法输出该结点的data域的值,并返回1;否则,只返回0。本题代码如下voidfind(linklist*L,intx)//找到倒数第k个的值{lnode*p=(*L)->l
认真敲代码的小火龙
·
2023-11-13 04:22
王道课后习题单链表
数据结构
算法
链表
c语言
王道数据结构课后
代码题
p40 9.给定一个带表头结点的单链表,写出算法 : 按递增次序输出单链表中各结点的数据元素并释放结点 (c语言代码实现)
本题代码如下(有注释)voiddelete_min(linklist*head){while((*head)->next!=NULL)//循环到只剩下头节点{lnode*pre=*head;//pre为元素最小结点的前驱结点指针lnode*p=(*head)->next;//p为工作指针lnode*q;//指向被删除的结点while(p->next!=NULL)//找到最小的结点{if(p->ne
认真敲代码的小火龙
·
2023-11-13 04:20
王道课后习题单链表
算法
数据结构
c语言
链表
Java
代码题
m个小朋友分糖果,巧解“博弈”型算法题:分糖果问题
问题导入【题目:】给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。示例1:输入:candies=[1,1,2,2,3,3]输出:3解析:一共有三种种类的糖果,每一种都有两个。最优分配方案:妹妹获得[1,2,3],弟弟也获得[1,2,3]。这样使妹妹获得糖果的种类数最多。示例2:输入:
乐姐理财说
·
2023-11-13 01:59
Java代码题m个小朋友分糖果
游戏研发人才学校培养、企业需求与个人快速成长,华科校友分享了这些实用观点
嘉宾一:欧阳旻嘉宾简介:华科98级计算机,连续10年带领华中科技大学/武汉大学等学校的软件学院与计算机学院实训,为游戏企业输送大量的人才
Q.
与HUSTGAMER的结缘,其实是非常巧合的事情!
www.hp91.cn
·
2023-11-12 08:51
游戏
游戏开发
游戏引擎
上一页
7
8
9
10
11
12
13
14
下一页
按字母分类:
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
其他