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
蓝桥杯刷题冲刺
Verilog
刷题
笔记28
题目:A“populationcount”circuitcountsthenumberof'1’sinaninputvector.Buildapopulationcountcircuitfora255-bitinputvector.解题:moduletop_module(input[254:0]in,output[7:0]out);inti;always@(*)beginout=8'b0;for(
十六追梦记
·
2024-02-09 13:31
笔记
Verilog
刷题
笔记26
题目:Buildacombinationalcircuitwith100inputs,in[99:0].Thereare3outputs:out_and:outputofa100-inputANDgate.out_or:outputofa100-inputORgate.out_xor:outputofa100-inputXORgate.解题:moduletop_module(input[99:0]
十六追梦记
·
2024-02-09 13:01
笔记
华为HCIP-Datacom-Core Technology H12-821方向题库(1)
文章目录考试内容
刷题
题库1.在IS-IS的广播网络中,Level-2路由器使用哪个组播MAC地址作为发送IIH的目的地址?2.下面关于BGP特性的描述,错误的是:3.如下那个工具不能用于路由过滤?
一只理智曜
·
2024-02-09 13:27
HCIP
华为
力扣
刷题
之旅:进阶篇(二)
继续我的力扣
刷题
之旅,在上一篇文章中,我深入探索了图算法和动态规划的高级技巧。现在,我将附上一些简单的代码示例,以展示这些算法在实际问题中的应用。
GT开发算法工程师
·
2024-02-09 13:26
leetcode
算法
职场和发展
数据结构
力扣
刷题
之旅:进阶篇(三)
力扣(LeetCode)是一个在线编程平台,主要用于帮助程序员提升算法和数据结构方面的能力。以下是一些力扣上的入门题目,以及它们的解题代码。一、动态规划(DP)首先,让我们来看一个使用动态规划解决“最长回文子串”问题的代码示例:deflongestPalindrome(s:str)->str:n=len(s)ifn1ands[i]==s[i+1]:dp[i][i+1]=Truestart=imax
GT开发算法工程师
·
2024-02-09 13:26
leetcode
算法
职场和发展
C++ pair使用踩坑及建议
关于pair的介绍和用法直接附上大佬博客链接问题说明
刷题
的时候,自定义了一个结构stack>>st;在入栈的时候如果使用st.push({"",{n,n}});,程序正常执行,但当我使用st.emplace
巴塞罗那的风
·
2024-02-09 11:46
C++
实验室项目
爬坑记录
c++
2020-10-17
第一轮:系统精讲+
刷题
第一阶段就是跟着老师理解书本的知识点,白天认真听课,晚上复习,讲练结合。【
刷题
】分章节刷,主要是一些基础类型的题目。【笔记】可以用彩色笔来标注。
番茄ww
·
2024-02-09 11:11
LeetCode
刷题
Python之1768. 交替合并字符串
执行结果:已完成执行用时:24ms输入"abc""pqr"输出"apbqcr"差别预期结果"apbqcr"执行代码:思路:其实这道题可以将字符串看作是两个列表中的元素相互交叉拼合成一个列表的问题。构建一个索引一次次地插入元素即可。
韬韬帅
·
2024-02-09 11:01
leetcode
算法
职场和发展
C语言——oj
刷题
——实现字符串逆序
当我们需要逆序一个字符串的内容时,可以通过C语言编写一个函数来实现。下面将详细介绍如何通过C语言实现这个功能,并附上代码示例。1、实现原理要逆序一个字符串的内容,可以使用两个指针来交换字符串中对应位置的字符。具体实现原理如下:首先,我们定义两个指针,一个指向字符串的开头,另一个指向字符串的末尾。然后,我们通过交换两个指针所指向的字符来逆序字符串的内容。接着,我们将两个指针向中间移动,重复上述步骤,
朝九晚五ฺ
·
2024-02-09 11:27
c++
算法
开发语言
C语言——oj
刷题
——调整数组使奇数全部都位于偶数前面
题目:输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。一、实现方法:当我们需要对一个整数数组进行调整,使得奇数位于数组的前半部分,偶数位于数组的后半部分时,可以使用以下方法来实现。首先,我们可以定义两个指针,一个指向数组的开头,一个指向数组的末尾。然后,我们可以使用循环来遍历数组,直到两个指针相遇为止。在每次循环中,我们检
朝九晚五ฺ
·
2024-02-09 11:26
算法
数据结构
排序算法
解密输入输出迷局:
蓝桥杯
与ACM中C++/C语言常见问题揭秘
关于C++中的常见输入输出汇总带空格的字符串:对于这种输入方式我们选择使用gets()函数来进行输入,gets用于从标准输入(通常是键盘)读取一行文本并将其存储为字符串,直到遇到换行符(‘\n’)为止的所有字符。#include#include#includeusingnamespacestd;typedeflonglongLL;intmain(){chararr[100];gets(arr);c
acmakb
·
2024-02-09 10:28
蓝桥杯
数据结构与算法
蓝桥杯
c++
c语言
算法
Codeforces大战苏维埃 12月17,18签到题解析
众所周知,国内有不少
刷题
宝地力扣牛客洛谷PTA头歌等等。
ZealSinger
·
2024-02-09 10:48
c新手入门题练习
算法
c语言
c++
南开计算机考研难么,我的一点考研心得
我一共经历了两次考研,第一次上本科时,2009年,考的是南开大学经济学,当时复习历经了一年半的时间,这也是为什么最后没有考上的原因,因为战线拉的太长,到后来该
冲刺
的时候身体反而顶不住了,再加上第一次学习方法有些不对
装鳖
·
2024-02-09 09:45
南开计算机考研难么
2022-6-23晨间日记
今天是什么日子起床:4:40就寝:10:00天气:晴转小雨心情:一般纪念日:没有任务清单昨日完成的任务,最重要的三件事:课外阅读打卡➕日更➕
刷题
改进:专注一点习惯养成:坚持日更周目标·完成进度《明朝那些事儿
Mint思
·
2024-02-09 09:41
[
蓝桥杯
] 双指针、BFS和DFS与图论问题
献给阿尔吉侬的花束2、1题目描述2、2题解关键思路与解答三、红与黑3、1题目描述3、2题解关键思路与解答3、2、1dfs题解代码3、2、2bfs题解答案四、交换瓶子4、1题目描述4、2题解关键思路与解答本篇文章针对
蓝桥杯
比赛的考点
Ggggggtm
·
2024-02-09 09:05
算法与竞赛
蓝桥杯
深度优先
宽度优先
算法
竞赛
蓝桥杯
省赛专题训练之双指针、BFS与图论(相关真题和模板题)
题目:1238.日志统计题解:双指针。#includeusingnamespacestd;typedeflonglongLL;typedefpairPII;constintN=1e5+10;intn,d,k;PIIa[N];//queueq[N];intct[N];boolsta[N];intmain(){cin>>n>>d>>k;for(inti=0;i=d+a[i].first){ct[a[i
岁忧
·
2024-02-09 09:05
AcWing
蓝桥杯
c++
算法
蓝桥杯
双指针+BFS+图论
这里是目录双指针+BFS+图论双指针日志统计暴力做法双指针优化BFS献给阿尔吉侬的花束图论交换瓶子暴力做法置换群算法双指针+BFS+图论双指针日志统计来源:第九届
蓝桥杯
省赛C++B组,第九届
蓝桥杯
省赛JAVAB
小羊努力变强
·
2024-02-09 09:03
算法与数据结构
经验分享
算法
数据结构
我和我的梦---组诗
一睡在我身体中的黑夜准许我拥有一个梦的权利我从深渊一跃而起在大海的浪头放置一个方向风吹着我狂奔二阳光打开我的第一扇门和窗户安静在屋里的床躁动不已摇晃着碾压天空中的一朵白云我躲在墙上的影子看见昨夜的梦呲牙咧嘴的大笑笑声震碎了我眼睛里的镜子一池蛙鸣争先恐后的逃出月光的牢笼三落叶,忧伤的落叶引诱秋天劈开我的秋天,梦的秋天试图扒拉出一个黎明麦芒
冲刺
土地的金黄我在麦子成熟的时候
万里西风烈
·
2024-02-09 09:54
备战
蓝桥杯
---动态规划(理论基础)
目录动态规划的概念:解决多阶段决策过程最优化的一种方法阶段:状态:决策:策略:状态转移方程:适用的基本条件1.具有相同的子问题2.满足最优子结构3.满足无后效性动态规划的实现方式:动态规划的概念:解决多阶段决策过程最优化的一种方法阶段:把问题分成几个相互联系的有顺序的环节。状态:某一阶段的出发位置决策:从某一状态演变到下一个状态的选择策略:从开始到终点的决策序列。状态转移方程:从i到i+1状态的演
cocoack
·
2024-02-09 08:32
动态规划
算法
c++
备战
蓝桥杯
---搜索(进阶4)
话不多说,直接看题:下面是分析:(a+b)%c=(a%c+b%c)%c;(a*b)%c=(a%c*b%c)%c;因此,如果两个长度不一样的值%m为相同值,那就舍弃长的(因为再加1位只不过是原来值*10+那位值,因此他们得出的%m还是同一值)。因此,我们每次只要BFS最多m-1个值,复杂度为O(k*m*n),其中N为数的位数。下面是AC代码:#includeusingnamespacestd;int
cocoack
·
2024-02-09 08:31
蓝桥杯
算法
宽度优先
深度优先
备战
蓝桥杯
---动态规划(基础1)
先看几道比较简单的题:直接f[i][j]=f[i-1][j]+f[i][j-1]即可(注意有马的地方赋值为0)下面是递推循环方式实现的AC代码:#includeusingnamespacestd;#defineintlonglonginta[30][30];intn,m,x,y;signedmain(){cin>>n>>m>>x>>y;x++;y++;m++;n++;a[1][1]=1;for(i
cocoack
·
2024-02-09 08:31
蓝桥杯
动态规划
算法
c++
备战
蓝桥杯
---搜索(完结篇)
再看一道不完全是搜索的题:解法1:贪心+并查集:把冲突事件从大到小排,判断是否两个在同一集合,在的话就返回,不在的话就合并。下面是AC代码:#includeusingnamespacestd;intn,m,a,b,c;structnode{intx,y,qi;}a1[100010];intfa[50000];boolcmp(nodea,nodeb){returna.qi>b.qi;}intfind
cocoack
·
2024-02-09 08:30
蓝桥杯
深度优先
c++
算法
图论
华为机试od社招
刷题
攻略-三数之和
三数之和题目输入一个不重复的正整数数组,查找三个数和为target的组合。输出三个数从小到大排序。输入描述第一行:不重复的正整数数组nums。nums.length>=3第二行:目标值target输出描述三个一行,和为target。三个数依次从小到大排序.输入10519616输出1510169输入3216输出123思路需要查找三个数,最简单的就是三层循环遍历,查找所有的组合方式并判断。技巧提示:当
微凉的风啊
·
2024-02-09 08:49
数据结构和算法
算法
【华为OD机考 统一考试机试C卷】数组去重和排序(C++ Java JavaScript Python C语言)
另外订阅专栏还可以联系笔者开通在线OJ进行
刷题
,提高
刷题
效率。真题目录:华为OD机考机试真题目录(C卷+D卷+B卷+A卷)+考点说明专栏:2023华为OD机试(B
算法大师
·
2024-02-09 08:17
华为od
c语言
c++
数据结构与算法-链表(力扣附链接)
这部分的知识对于我们编程的深入学习非常有用,对于一些基本的算法,我们学习之后,就可以参加一些编程比赛了(
蓝桥杯
)。学习前提1.至少掌握一门计算机编程语言。2.有一定的数学基础和逻辑思考能力。
Monodye
·
2024-02-09 08:43
链表
数据结构
蓝桥杯
备赛Day9——链表进阶
给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。示例1:输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5]示例2:输入:head=[1],n=1输出:[]示例3:输入:head=[1,2],n=1输出:[1]提示:链表中结点的数目为sz1<=sz<=300<=Node.val<=1001<=n<=sz进阶:你能尝试使用一趟扫描实现吗?<
牛哥带你学代码
·
2024-02-09 08:38
蓝桥杯备赛
数据结构
蓝桥杯
职场和发展
【
蓝桥杯
冲冲冲】Invasion of the Milkweed G
【
蓝桥杯
冲冲冲】InvasionoftheMilkweedG
蓝桥杯
备赛|洛谷做题打卡day30文章目录
蓝桥杯
备赛|洛谷做题打卡day30[USACO09OCT]InvasionoftheMilkweedG
松叶子吖
·
2024-02-09 08:07
蓝桥杯备赛
C++知识
蓝桥杯
职场和发展
PYTHON
蓝桥杯
——每日一练(简单题)
题目输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。输入格式输入包括两行,第一行为一个非负整数a,第二行为一个非负整数b。两个整数都不超过100位,两数的最高位都不是0。输出格式输出一行,表示a+b的值。解析一、二、三、(该代码存在输入问题)代码x=[2,0,1,0,0,1,2,2,2,0,1,0,0,1,2,2,1,2,3,4,5,6,7,8,9,0]y=[2,0,1,0,0,1
詹小菜
·
2024-02-09 08:37
蓝桥杯
蓝桥杯
python
PYTHON
蓝桥杯
——每日一练(简单题)
题目Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。给出一列数{pi}={p0,p1,…,pn-1},用这列数构造Huffman树的过程如下:1.找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi}中。这个过程的费用记为pa+pb。2.重复步骤1,直到{pi}中只剩下一个数。在上面的操作过程中,把所有的费用相
詹小菜
·
2024-02-09 08:37
蓝桥杯
蓝桥杯
python
蓝桥杯
——每日一练(简单题)
题目写一函数,将一个字符串中的元音字母复制到另一个字符串,然后顺序输出其中的元音字母(aeiou)。解析一、input()函数得到一个字符串二、for循环进行判断,并加入列表中三、使用sort()函数进行升序输出reverse=True为降序代码运行结果
詹小菜
·
2024-02-09 08:07
蓝桥杯
python
PYTHON
蓝桥杯
——每日一练(简单题)
题目输入一个正整数n,输出n!的值。其中n!=1*2*3*…*n。输入格式输入包含一个正整数n,n<=1000。输出格式输出n!的准确值。解析一、先获得需要计算的数二、设置前面两个阶层的值三、使用位置数乘以前面一个数的阶层的方式计算(请大家指教数组的方法)代码a=int(input())x=[1,1]foriinrange(2,a):b=i*x[i-1]x.append(b)print(x[-1]
詹小菜
·
2024-02-09 08:07
蓝桥杯
python
蓝桥杯
【
蓝桥杯
冲冲冲】Prime Gift
【
蓝桥杯
冲冲冲】PrimeGift
蓝桥杯
备赛|洛谷做题打卡day31文章目录
蓝桥杯
备赛|洛谷做题打卡day31PrimeGift题面翻译题目描述输入格式输出格式样例#1样例输入#1样例输出#1样例#2样例输入
松叶子吖
·
2024-02-09 08:37
C++知识
蓝桥杯备赛
蓝桥杯
职场和发展
PYTHON
蓝桥杯
——每日一练(简单题)
题目有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?输入格式输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0
詹小菜
·
2024-02-09 08:36
蓝桥杯
python
蓝桥杯
又是无聊的一天
回去以后就刷
刷题
,背背东西。然后买一些秋天穿的衣服什么的,最近发现了一个宝藏博主,衣服都是pdd可以搜索到的,而且还教搭配,绝绝子。
退堂鼓儿
·
2024-02-09 07:13
今日小结
明天有门数值分析考试,这几天一直在
刷题
库,刷的遍数不算多,题型也大致看了一遍。仍是有许多不会。内心很慌,但是因为今天写的很多,晚上应该歇歇脑子了。刚有室友给我分享的一套题,还没来得及看。
夜景_Y
·
2024-02-09 07:57
LC1220线性代数YYDS:多种解法:「状态机DP:一维 OR 二维」&「矩阵快速幂」
前言大家好,我是新人博主:「个人主页」主要分享程序员生活、编程技术、以及每日的LeetCode
刷题
记录,欢迎大家关注我,一起学习交流,谢谢!
Chthollists
·
2024-02-09 07:47
国庆假期开始咯|感恩日记D246
早起,综合素质
刷题
一套。早饭过后教研室,阅读,资料整理。和爱人嘟嘟一起看大阅兵!午饭过后,午休,教研室整理小论文资料。下午一起走回家,晚饭我看娃,爱人看手机。
Amy宝宝
·
2024-02-09 07:28
牛客网SQL进阶127: 月总
刷题
数和日均
刷题
数
官网链接:月总
刷题
数和日均
刷题
数_牛客题霸_牛客网现有一张题目练习记录表practice_record,示例内容如下:。
爱吃辣条byte
·
2024-02-09 06:29
#
SQL刷题
算法
sql
数据库
LeetCode
刷题
笔记(Java实现)-- 22. 括号生成
题目难度:Medium题目要求:数字n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。示例1:输入:n=3输出:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]示例2:输入:n=1输出:[“()”]算法思路:深度优先遍历+回溯法1.lc,rc分别表示当前左括号和右括号的个数,只有当lc,rc都等于n时,才满足要求,可以把当
挽风归
·
2024-02-09 06:26
java
算法
leetcode
2019.12.14
上午吃过早饭就送希宝去风暴机器人上课,体验课最后一次,孩子特别喜欢,非要报长年班,考虑现在要不要报,如果报了也等放假再去上课,因为现在已经进入复习
冲刺
阶段,为期末考试而备战,所以现在的课程该停就停了,更不能增加加课程
希宝妈咪
·
2024-02-09 06:42
[leedcode]
刷题
有感--动态规划入门及思路模板
一、动态规划思考模板1、构造dp[]数组,想清楚dp[]数组的具体含义。2、确定本题目的递推公式3、初始化dp[]数组4、确定数组遍历顺序5、利用初始化后的dp数组结合递推公式推导dp数组,看是否符合题意要求二、题目示例1、斐波那契数列--一维动态规划斐波那契数列斐波那契数,通常用F(n)表示,形成的序列称为斐波那契数列。该数列由0和1开始,后面的每一项数字都是前面两项数字的和。也就是:F(0)=
给我杯冰美式
·
2024-02-09 05:52
动态规划
算法
[leedcode]
刷题
有感--动态规划经典问题--01背包问题
一、01背包问题理论介绍有n件物品和一个最多能背重量为w的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。类似于这种类型的就是经典的01背包问题。对于01背包问题,我们通常使用动态规划来求解,当然也可以用回溯算法来求解,但是回溯算法的时间复杂度为指数级别,若题目中的测试数据过大,则可能会超时。二、题目示例示例一
给我杯冰美式
·
2024-02-09 05:52
动态规划
算法
[Leedcode]
刷题
有感--对称二叉树 与 子二叉树
一、对称二叉树1、题目链接:leedcodeT101--对称二叉树给定一个二叉树,检查它是否是镜像对称的。2、题目思路:解决二叉树类问题,首先要明确自己要用哪一种遍历二叉树的方式,遍历二叉树的形式有三种:1、先序遍历--中左右,2、中序遍历--左中右,3、后序遍历--左右中。遍历二叉树的方法有两种:第一种是DFS--深度优先搜索,第二种是BFS--广度优先搜索。代码的实现方式也有两种:第一种为函数
给我杯冰美式
·
2024-02-09 05:22
算法
数据结构
[leedcode]
刷题
有感 二叉树的深度、节点数量、与平衡二叉树
一、二叉树的最大深度1、二叉树的最大深度二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数或者节点数(取决于深度从0开始还是从1开始)二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数或者节点数(取决于高度从0开始还是从1开始)由此我们可以得出一个结论:根节点高度等于二叉树的最大深度,如果我们想求二叉树的某个节点的高度,我们求那个节点所在子树的最大深度即可,这个转化的思想在我们解
给我杯冰美式
·
2024-02-09 05:22
算法
LeetCode
刷题
记——69. x 的平方根(牛顿迭代法)
题目描述:实现intsqrt(intx)函数。计算并返回x的平方根,其中x是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例1:输入:4输出:2示例2:输入:8输出:2说明:8的平方根是2.82842...,由于返回类型是整数,小数部分将被舍去。一想到平方根,我第一时间想到用2分法的方法去计算,用一个while循环来控制终止条件。但是突然想到在数值分析中学到的牛顿迭代法,
JimmyGreen
·
2024-02-09 05:21
【
蓝桥杯
单片机记录】IO基础与LED控制
目录一、IO基础1.1IAP15F2K61S2芯片原理图1.2不同工作模式二、新建工程的一些补充2.1keil中没有IAP15F2K61S2的头文件解决:在isp软件中找到如下编辑2.2keil中的芯片选择2.3推荐字体三、sbit关键字四、LED控制4.1原理图4.2不能直接通过IO口对LED进行控制4.3找到“钥匙”->打开通往LED的“门”4.3.174HC138译码器4.4部分代码解读4.
La_gloire
·
2024-02-09 05:37
51单片机
蓝桥杯
单片机
嵌入式硬件
报复性摆烂
不知道为什么,在经过一个月每天看书
刷题
后,我竟然在520的周末,开始报复性摆烂,一直到今天晚上也提不起劲。学习之路真的太累太艰难了,本来上班就够辛苦了,这马上就到考试时间了,心理压力也挺大。
小朱配奇
·
2024-02-09 03:10
蓝桥杯
嵌入式STM32G431——第八届省赛真题模拟升降控制器
第八届省赛真题模拟升降控制器1、第八届省赛真题2、状态机框图(供参考)3、主函数代码(不包含各模块的初始化代码)1、第八届省赛真题2、状态机框图(供参考)3、主函数代码(不包含各模块的初始化代码)#include"main.h"#include"rcc.h"#include"led_key.h"#include"lcd.h"#include"rtc.h"#include"tim.h"//***执行
lzya.
·
2024-02-09 02:54
蓝桥杯嵌入式
stm32
蓝桥杯
单片机
蓝桥杯
嵌入式STM32G431——第十一届第一场省赛真题及代码
第十一届第一场省赛真题主函数部分代码(不包含各模块初始化代码)#include"main.h"#include"adc.h"#include"lcd.h"#include"led_key.h"#include"rcc.h"#include"tim.h"//***通过滴答定时器实现执行速度控制变量__IOuint32_tuwTick_LED_Speed_Ctrl;__IOuint32_tuwTick
lzya.
·
2024-02-09 02:54
蓝桥杯嵌入式
stm32
蓝桥杯
单片机
蓝桥杯
嵌入式第8届真题(完成) STM32G431
蓝桥杯
嵌入式第8届真题(完成)STM32G431题目分析和代码对比第六届和第七届,这届的题目在逻辑思维上确实要麻烦不少,可以从题目看出,这届题目对时间顺序的要求很严格,所以就可以使用状态机的思想来编程,
计算机科学边界
·
2024-02-09 02:21
单片机
蓝桥杯
stm32
职场和发展
上一页
19
20
21
22
23
24
25
26
下一页
按字母分类:
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
其他