代码随想录 1 数组 小宋 2 人赞同了该文章 目录 收起 1 数组理论基础 2 二分查找 binary-search 3 移除元素 remove-element 4 有序数组的平方 squares-of-a-sorted-array 5 长度最小的子数组 minimum-size-subarray-sum 6 螺旋矩阵II spiral-matrix-ii 7 区间和,前缀和 8 开发商购买土地 ...
代码随想录-数组1 704. 二分查找力扣题目链接基本思路设定左右边界,找到中间值,根据中间值判断目标元素所在范围,更新边界。二分法(左闭右闭)class Solution { public int search(int[] nums, int target) { int left = 0; int right = nums.length - 1; int m = left + (right - left) / 2; while...
publicintminSubArrayLen(inttarget,int[] nums){int[] ans =newint[nums.length];// 当前元素代表和大于等于target的最少的前n个元素(若前面元素相加的最大值,则取最大值)int[] sum =newint[nums.length];// 当前元素代表前n个元素的和intmin=1<<30;if(nums ==null|| nums.length ==0){return0;...
视频讲解:《代码随想录》算法视频公开课:手把手带你撕出正确的二分法 Solution 1 (左闭右闭): classSolution{publicintsearch(int[]nums,inttarget){intleft=0;intright=nums.length;while(left<right){intmid=left+(right-left)/2;if(nums[mid]>target)right=mid;elseif(nums[mid]<target)left=mid+1;els...
记录一下自己使用kotlin解题的过程,源代码和注释 1.二分查找,LeetCode题号704,查找区间为闭区间 fun search(nums: IntArray, target: Int): Int { //初始化查找范围 var left = 0 var right= nums.size-1 //开始查找 while(left <= right){ ...
【代码随想录】day1 day1 数组 之前三十多期也跟着刷了一遍,这次再复习一遍,年底准备投简历。 704.二分查找 二分法的前提:数组有序且无重复元素。因为有重复元素二分法返回的元素下标可能不唯一。 二分法的关键是对区间的定义:[left, right]还是[left, right)。根据区间定义的不同,写法不同。比如while (left <...
代码随想录day1 数组下标从0开始,如果使用C++的话,要注意vector 和 array的区别,vector的底层实现是array,严格来讲vector是容器,不是数组。 数组的元素只能覆盖,不能删除。 C++中vector 是标准库中的提供的一个容器类,用于存储动态大小的元素序列。它是一个模板类,用于动态存储任意类型的元素。注意包含头文件<...
代码随想录 代码随想录是一个致力于帮助程序员提高编程能力的平台,涵盖了多种编程技术和算法的学习资源。代码随想录是一套完整的刷题计划,旨在帮助大家少走弯路,循序渐进学算法。 代码随想录官网网址:https://programmercarl.com/ 代码随想录详细介绍: HTML5和CSS:介绍了HTML5和CSS的基本概念及其应用场景,强调了...
二分法很常见,但是在while循环里的条件与后续left/right指针的变化逻辑有很大关联,很容易出现思路正确,代码怎么也无法通过的情况,浪费时间。 classSolution{publicintsearch(int[]nums,inttarget){intlen=nums.length;intleft=0;intright=len-1;while(right>=left){intindex=(left+right)/2;if(nums[index]==targe...
target ∈ [low, high] vs target ∈ [low, high)的写法不一样 删除元素 第一反应就是快慢指针 比较平方 同样用双指针做,和题解不同的是使用了append,因此python最后返回的是res[::-1],其它一致 需要注意终止条件,while start<=end,不然会漏掉最中间的值...