![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试经典 150 题
文章平均质量分 55
----K1
一名大二学生,目前学习c,java和数据结构与算法等领域,共勉 争取每日一更
展开
-
力扣-----169. 多数元素(投票法)进阶
给定一个大小为n的数组nums,返回其中的多数元素。⌊ n/2 ⌋你可以假设数组是非空的,并且给定的数组总是存在多数元素。32这里要讲的是投票法,这种方法是可以满足。原创 2023-09-05 17:25:18 · 64 阅读 · 1 评论 -
面试经典 150 题--80-- 删除有序数组中的重复项 II(双指针)
到慢指针的地方就可以了,只不过26是出现一次就可以了,这80题删除有序数组中的重复项 II就是出现两次了, 记住。这道题与题号26差不多的思路的,快慢指针的思路的,通过快指针去找到后面的数字,将其。删除重复出现的元素,使得出现次数超过两次的元素。并在使用 O(1) 额外空间的条件下完成。不需要考虑数组中超出新长度后面的元素。函数应返回新长度 length =, 并且原数组的前五个元素被修改为。, 并且原数组的前五个元素被修改为。不要使用额外的数组空间,你必须在。,返回删除后数组的新长度。原创 2023-08-14 22:42:55 · 50 阅读 · 1 评论 -
面试经典 150 题--力扣88. 合并两个有序数组(双指针+数组)思路讲解 C语言
首先nums1长度是m+n的,所以我们只需要从尾部进行操作就可以了的,首先设置三个指针m,n,i,m去指向nums1[m-1]的,n指向nums2[n-1],而i指向nums1[m+n-1],然后向前遍历就可以了,停止条件是m>=0以及n>=0,ok,我们开始吧。因为swap(nums1[i--], nums2[n--]);,5,6] ,其中斜体加粗标注的为 nums1 中的元素。需要合并 [1,2,3] 和 [2,5,6]。需要合并的数组是 [] 和 [1]。需要合并 [1] 和 []。原创 2023-08-13 22:49:58 · 143 阅读 · 1 评论 -
面试经典 150 题 力扣--27. 移除元素(数组,双指针) 思路+讲解
你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。这道题说了不能去使用额外的空间,要求的是原地修改,所以我们只能在nums数组上操作的,不能再暴力遍历,把不是val的值,赋值到另外一个数组的。我们可以去设置双指针(left,right)来对这个数组操作,右指针(right)是用来遍历整个数组的。你不需要考虑数组中超出新长度后面的元素。你不需要考虑数组中超出新长度后面的元素。原创 2023-08-12 12:03:05 · 56 阅读 · 1 评论