自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 Leetcode.46 全排列

分为交换法和标记数组法。

2023-08-01 00:27:51 116

原创 Leetcode.42 接雨水

从左到右按每一列来看,只要左右两边的柱子高于自身柱子的高度即能接得住水,而装水的多少,根据木桶效应,我们只需要看左边最高的墙和右边最高的墙中较矮的一个就够了。所以此时能接得住1格子水。

2023-07-31 22:47:01 106

原创 Leetcode.39 组合总和

则需要把target<0放到循环外判断,若<0则直接return。

2023-07-30 20:30:10 102

原创 Leetcode, 34 在排序数组中查找元素的第一个和最后一个位置

进行两次二分查找,一次找第一个一次找最后一个。

2023-07-30 17:46:40 126

原创 Leetcode.33 搜索旋转排序数组

1、如果[l, mid - 1] 是有序数组,且 target 的大小满足nums[l]<=target<nums[mid],则我们应该将搜索范围缩小至 [l, mid - 1],否则在 [mid + 1, r] 中寻找。2、如果 [mid, r] 是有序数组,且 target 的大小满足nums[mid]<target<=nums[r],则我们应该将搜索范围缩小至[mid + 1, r],否则在 [l, mid - 1] 中寻找。我们将数组从中间分开成左右两部分的时候,一定有一部分的数组是有序的。

2023-07-30 16:08:36 171

原创 Leetcode.31 下一个排列

下一个排列意思就是一个数组给定若干个数字,将其组合为一个整数。如何将这些数字重新排列,以得到下一个更大的整数。

2023-07-29 21:46:55 103

原创 Leetcode.22 括号生成

【代码】Leetcode.22 括号生成。

2023-07-29 18:41:06 88

原创 Leetcode.17 电话号码的字母组合

注意因为有函数调用问题,前三行是定义在全局的,剩下的看代码注释吧……

2023-07-28 22:25:19 71

原创 Leetcode.15 三数之和

首先对数组进行排序,排序后固定一个数 nums[i],再使用左右指针指向nums[i]后面的两端,数字分别为nums[L]和nums[R],计算三个数的和 sum 判断是否满足为0,满足则添加进结果集。4、同理,当sum=0时,nums[R] = nums[R-1] 则会导致结果重复,应该跳过,R–2、如果nums[i] = nums[i−1],则说明该数字重复,会导致结果重复,所以应该跳过,3、当sum=0时,nums[L] = nums[L+1] 则会导致结果重复,应该跳过,L++

2023-07-28 21:20:24 84

原创 Leetcode.11 盛最多水的容器

木桶短板效应, 面积等于较短边的长度*两边之间的距离,所以用双指针分别在一头一尾然后向中间移动。其实更通俗的说法,面积由较短边决定,那我们就应该让较短边尽量大,所以舍弃现在较小的边。begin指针指向开头,end指针指向最后,求面积后较短的边向中间移动。我们先假设移动的是较长边a,保留较短的边b,然后分情况讨论。1、假如移动后a1>b,此时的面积还是由较短边b决定,2、假如移动后a1<b,此时面积由较短边a1决定,

2023-07-27 18:28:08 71

原创 Leetcode.5 最长回文子串

2、如果去掉 s[i…j] 头尾两个字符子串 s[i + 1…j - 1] 的长度严格小于 2(不构成区间),为" "或者"b"这种情况,即最中间是空或者只有一个字符,即此时的字符串长度(j-1)-(i+1)+1<2,即j-i<3,此时 s[i…j] 是否是回文只取决于 s[i] 与 s[j] 是否相等。j] 是否是回文取决于s[i] 与 s[j] 是否相等且s[i + 1…j - 1]是否为回文串。1、字符串只有一个字符,则是回文串直接返回该字符串。

2023-07-27 16:58:13 71

原创 Leetcode.4 寻找两个正序数组的中位数

暴力解的,就是按升序合并两个数组,存到新数组c中,然后再分情况判断c的长度是奇数还是偶数,奇数则中位数就是。,注意因为输出是double类型,所以要除2.0000。

2023-07-27 00:48:44 64

原创 Leetcode.3 无重复字符的最长字串

2、end指针每次向后移动一次后,使用for循环遍历看start和end之间的字符有没有和end新指向的字符相同,若有则将start指针移动到相同字符的后面,并更新此时的无重复字符串长度。1、设置start和end指针,start指向无重复字符串的第一个字符,end指向无重复字符串的最后,并且一直向后移动。3、记录无重复字符串长度为num=end-start,取最大值。

2023-07-26 23:22:00 74

原创 Leetcode.2 两数相加

思路:链表逆序存储数字,则链表头部节点开始分别代表个十百千位,两个链表对应节点相加即为和的相应位,注意考虑进位的情况,所以结果链表节点的值为(l1+l2+flag)%10,同时记录该位相加完是否有进位。2、两个指针的作用,head用来记录链表头结点用于函数返回,tail用于链表尾插法插入元素。1、两个链表都遍历完后,最后一位进位需要添加至链表结尾。

2023-07-25 23:17:38 87

原创 Leetcode.617 合并二叉树

4、令root->left再走一遍前三步的流程,注意传入的参数是两颗二叉树同个位置的节点,所以是root1->left和root2->left,都是left。3、都不为null,则将root1的值改成root1+root2,此时根节点root已合并完成,接下来就是递归。5、同第四步,令root->right再走一遍前三步的流程。1、先判断root1是否为null,是则返回root2。2、判断root2是否为null,是则返回root1。6、最后返回root1。

2023-07-25 15:39:00 128

原创 Leetcode.543 二叉树的直径

以这张图为例:

2023-07-25 01:18:38 82

原创 Leetcode.461 汉明距离

题意是求x和y二进制数有几位不同,即求x和y异或后的结果有几个1,因为0和1异或结果=1。2、求1的个数可以采用逐位判断后右移的方法,若末位为1则n+1,接着右移。3、重复循环第二步直到res=0。

2023-07-24 23:23:03 82

原创 Leetcode.448 找到所有数组中消失的数字

要考虑一个问题就是:有可能我们拿到的这个nums[i]已经是被加过len了,所以index不能直接取nums[i]-1,而是要(nums[i]-1)对len取余数,即。那么数值小于等于len的,一定没有进行+len这个操作,则可以认为这个位置所对应的下标没有出现过,则放入数组res中返回。完成一次循环后此时如果出现过的数字,那这个数字作为下标的地方那个数值一定会大于len。

2023-07-24 19:46:45 76

原创 Leetcode.338 比特币计数

偶数:偶数的最低位一定是0,偶数是相当于被某个更小的数乘2,在二进制运算中,就是左移一位,也就是在低位多加1个0,那样就说明dp[i] = dp[i / 2],因为补0不影响1的个数。那样就说明dp[i] = dp[i-1] + 1,当然也可以写成dp[i] = dp[i / 2] + 1。奇数:奇数由不大于该数的偶数+1得到,偶数+1在二进制位上会发生什么?会在低位多加1个1,

2023-07-22 17:08:15 216

原创 Leetcode.283 移动零

2、i指针向后移动,遍整个nums数组,如果 nums[i]!= 0,也就是说遇到了非0元素,此时我们就将nums[i]元素放置到nums[k]位置,同时k++后一位。1、定义两个指针i和k,初始化i = 0,k = 0。3、最后将k位置之后的元素都赋值为0。

2023-07-22 16:28:22 82

原创 Leetcode. 234 回文链表

2、从慢指针开始反转后半段链表,注意下图,中间节点要指向null,所以在代码初始化rhead为null。3、从head和rhead出发一步一步遍历比较val,若不相同则返回false,全部相同则返回true。1、快慢指针,快指针走到结尾时慢指针走到中间。

2023-07-22 16:04:47 77

原创 Leetcode.226 翻转二叉树

2、依次将每个节点的左右孩子交换。1、判断是否为空,为空则返回。

2023-07-17 23:55:14 72 1

原创 Leetcode.206 反转链表

4、完成反转后将cur指针和pre指针都向后移(先移动pre,另pre=cur,cur指向一开始temp保存的节点。2、定义一个临时指针变量temp指向cur->next(因为下一步要改变cur->next。5、最后return pre是因为反转链表完成后pre指向头节点。1、定义一个pre指针指向null,一个cur指针指向head。3、反转,将cur->next 指向pre。

2023-07-13 21:52:36 74 1

原创 Leetcode.141环形链表

思路有点类似小学的相遇追及问题,一个速度快一个速度慢的两个人在跑道上匀速跑,若干圈后他们总会相遇,就用这个来证明链表中有环的存在。

2023-07-13 21:15:40 59 1

原创 Leetcode.160相交链表

思路看的这里看完之后有个疑惑的点,有没有可能两个链表相交后又分开了,为什么相交后一定就只有一条链表,后来想了一下,一个节点可以多个节点指向,但不能自己指向多个别的节点,所以相交节点后面一定是全部重合的,我傻了orz。

2023-07-13 18:41:21 129 1

原创 Leetcode.169 多数元素

所以不会抵消完,到最后还是会出现。

2023-07-12 22:33:07 99 1

原创 Leetcode.136只出现一次的数字

因为异或运算满足交换律,所以可以把相同的放在一起运算变成零,最后会剩下只出现一次的数字与0异或,结果也是只出现一次的数字。

2023-07-12 21:33:55 129 1

原创 leetcode121.买卖股票的最佳时期

【代码】leetcode121.买卖股票的最佳时期。

2023-07-12 17:47:49 118 1

原创 Generator生成器

Generator生成器

2023-07-03 22:39:14 200 1

原创 uniapp的tabbar遮挡底部页面显示问题

uniapp的tabbar遮挡底部页面显示问题。

2023-04-22 02:15:02 995

原创 leetcode104.二叉树的最大深度

leetcode104.二叉树的最大深度

2023-03-16 13:05:09 142

原创 leetcode 101.对称二叉树

leetcode 101.对称二叉树

2023-03-14 15:56:43 69

原创 leetcode 94.二叉树的中序遍历

Leet code 94.二叉树的中序遍历

2023-03-09 14:03:52 108

原创 leetcode 70.爬楼梯

leetcode 70.爬楼梯

2023-03-09 11:15:15 76

原创 leetcode21.合并两个有序链表

leetcode21.合并两个有序链表

2023-03-08 18:33:55 82

原创 Leet code 20.有效的括号

leetcode 20.有效的括号

2023-03-07 16:55:57 167

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除