力扣算法
文章平均质量分 61
我是黄骨鱼
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[LeetCode热门100题]|137,260,268,面试17.19
137 只出现一次数字||,260只出现一次数字|||,268丢失的数字,面试17.19消失的两个个数字原创 2025-03-13 18:37:32 · 1040 阅读 · 0 评论 -
LeetCode 560.和为k的子数组
给你一个整数数组nums和一个整数k,请你统计并返回该数组中和为k的子数组的个数。子数组是数组中元素的连续非空序列。原创 2025-02-19 18:10:02 · 377 阅读 · 0 评论 -
LeetCode 238.除自身以外数组的乘积
给你一个整数数组nums,返回 数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积。题目数据数组nums之中任意元素的全部前缀元素和后缀的乘积都在整数范围内。请且在O(n)时间复杂度内完成此题。原创 2025-02-18 23:29:59 · 326 阅读 · 0 评论 -
LeetCode 724.寻找数组的中心下标
给你一个整数数组nums,请计算数组的。数组是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为0,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标,应该返回的那一个。如果数组不存在中心下标,返回-1。原创 2025-02-18 17:56:47 · 218 阅读 · 0 评论 -
LeetCode 173.0-n-1缺失的数字
比如 [0,1,2,3,5 ] 应该是 (0+5)*6/2 因为正常是[0,1,2,3,4,5] 0是首项,5是尾项,有6个数就是项数。使用高中学过的求和公式 ((首项+尾项)*项数)/2 和 数组中的值比较 缺少的那个就是返回的学号。比如[0,1,2,3,4] 应该是 (0+5)*6/2 因为只有一个人缺少所以尾项是5,正常也是0-6。我们可以发现正常的下标对应数组中的数是一样的,所以我们可以。当mid等于records.[mid]的时候 是mid的左边没有问题,所以是右边的缺少。原创 2025-01-21 14:49:34 · 185 阅读 · 0 评论 -
LeetCode 153.搜索旋转排序数组中的最⼩值
根据题目分析我们可以知道本体是旋转其实就是把,前面的一段数组,拼接在B后面。我们可以用每次的nums[mid]的值和D点比较,当nums[mid]>D说明在A、B区间,left=mid+1。当nums[mid]<D,说明在C、D区间,right=mid。这里righjt不-1,是因为C点是我们需要找的点,此时的nums[mid]可能就是C点,如果mid-1就会错过。,它原来是一个升序排列的数组,并按上述情形进行了多次旋转。遍历一次数组找最小的数即可。的数组,预先按照升序排列,经由。原创 2025-01-20 10:55:57 · 291 阅读 · 0 评论 -
LeetCode 852.山脉数组的峰顶索引
(2)比如left=2,right=3,mid=2,如果是mid=(left+right+1)>>>1时,mid=3,此时还是if(arr[mid]>arr[mid-1])left=mid;(1)比如left=2,right=3,mid=2,如果是mid=(left+right)>>>1时,mid=2,此时还是if(arr[mid]>arr[mid-1])left=mid;和mid=(left+right+1)>>>1;你必须设计并实现时间复杂度为。原创 2025-01-19 18:44:51 · 469 阅读 · 0 评论 -
LeetCode 69.x的平方根
使用二分查找,根据题目当我们找不到目标值,就返回整数部分,也就是我们需要返回较小的那个整数,所以我们返回最后结果left,其他就是正常的二分查找。不允许使用任何内置指数函数和算符,例如。由于返回类型是整数,结果只保留。原创 2025-01-17 16:28:17 · 240 阅读 · 0 评论 -
LeetCode 34.在排序数组中查找元素的第一个和最后一个位置
寻找左边界==情况下,需要进一步减小范围,因为此时可能mid指针下的值可能是第一个出现也可能不是,他的第一次出现的值一定在[left,mid-1]寻找右边界==情况下,需要进一步减小范围,因为此时可能mid指针下的值可能是最后一个出现也可能不是,使用需要查找的范围是[left,mid-1]根据题目是一个有序的数组,并且是查找左边界和右边界,可以使用二分查找。可以有暴力法和二分法,但是暴力法本文章就不叙述了,主要讲解二分法。其实这题是本质就是和正常的二分查找一样,只不过在==条件下,在。原创 2025-01-15 11:43:06 · 265 阅读 · 0 评论 -
LeetCode 704.二分查找
定义left = 0和right = nums.length;这样定义表示right 指针指向的区间不在取值范围,所以while(left原创 2025-01-14 22:20:01 · 307 阅读 · 0 评论 -
LeetCode 76.最小覆盖字串
可以学习这题用于计算总类的思路,剩下就是滑动窗口。使用滑动窗口+哈希表(数组代替)所有字符的子串,则返回空字符串。所有字符的最小子串。原创 2025-01-14 02:02:36 · 342 阅读 · 0 评论 -
LeetCode 30.串联所有单词的字串
并且使用count来记录窗口中的字母的种类和个数。当count中记录的种类和个数和p的种类和个数一样就可以更新结果。可以把s中的每len = word[0].length的长度看成是一个字符。指出,所以s中长度是每word[0].length是一个字符,把长度是word[0].length看成是一个字符。⽆⾮就是之前处理的对象是⼀个⼀个的字符,我们这⾥处理的对象是⼀个⼀个的单词。异位词的长度是和p的长度是固定的。中所有字符串以任意顺序排列连接起来的子串。来解决,但是是固定大小的窗口。原创 2025-01-12 23:46:38 · 502 阅读 · 0 评论 -
LeetCode 438.找到字符串中所有字母异位词
hash1统计p中字符出现的种类和个数,hash2表示s出现的种类和个数。如果right的值比如是b,那么就寻找 hash2[right - 'a'] <= hash1[right - 'a'] 如果条件完成,就会表示目前是有效字符,count++。当count中记录的种类和个数和p的种类和个数一样就可以更新结果。count = 1,因为p中的a只出现一次,所以有效字母值a也只能出现一次,才是有效字符,当right=0是count++了。是连续的窗口,所以使用滑动窗口来解决,但是是固定大小的窗口。原创 2025-01-09 11:09:29 · 439 阅读 · 0 评论 -
LeetCode 904.水果成篮
做法:右端⽔果进⼊窗⼝的时候,⽤哈希表统计这个⽔果的频次。这个⽔果进来后,判断哈希表的 ⼤⼩: 如果⼤⼩超过2:说明窗⼝内⽔果种类超过了两种。如果没有超过2,说明当前窗⼝内⽔果的种类不超过两种,直接更新结果ret。左侧元素滑出窗口,并且该元素的所在数组的位置大小减一,并left移动一位,当所在的left元素对应的索引的值大小减少到0,,该元素从哈希表中删除,水果种类减少。而且上述的条件指出我们可以知道数组中的数字的大小和数字的长度有关。研究的对象是⼀段连续的区间,可以使⽤「滑动窗⼝」思想来解决问题。原创 2025-01-08 12:07:30 · 320 阅读 · 0 评论 -
LeetCode 1004.最⼤连续1的个数III
LeetCode 1004.最⼤连续1的个数III原创 2025-01-06 10:00:00 · 312 阅读 · 0 评论 -
LeetCode 1658.将x减到0的最小操作数
LeetCode 1658.将x减到0的最小操作数原创 2025-01-07 16:19:33 · 361 阅读 · 0 评论 -
LeetCode 3.⽆重复字符的最⻓⼦串
LeetCode 3.⽆重复字符的最⻓⼦串原创 2025-01-05 11:51:46 · 433 阅读 · 0 评论 -
LeetCode 209.长度最小子数组
LeetCode 209.长度最小子数组 java原创 2025-01-05 00:08:19 · 356 阅读 · 1 评论
分享