Leetcode978 有序数组的平方 1:根据题目建议,实现。 错:if的分类开始弄得过于复杂。Leetcode209.长度最小的子数组1:自己尝试实现(暴力解法:两个for循环),半小时未做出。 错:满足条件后忘记跳出循环,同时注意result的更新策略。双指针Leetcode 59.螺旋矩阵II1:下不了手。注意事项:每一个循环的开始、结束条件多做几遍。
Leetcode704二分查找题目链接:704.二分查找思路:二分查找前提:有序数组,无重复数据1、确定有效区间,左闭右开,左闭右闭2、根据有效区间,写边界条件3、把有效的结果返回注意事项:取中间下角标的时候,需要注意超界问题。方法1右移位运算letmiddle=left+(right-left)>>1;方法2需要注意的是,JS并没有定义变量为整型数据的能力,需要自己手动向下取整。letmiddle=Math.floor(left+((right-left)/2));时间复杂度O(logn)空间复杂度O(1)Typescript代码左闭右闭letnums:number[]=[-1,0,3,5,
704.二分查找1.分析:有序数组查找目标值,找到返回下标,没找到返回-1思路一:二分查找感觉掌握的不太熟练,边界问题调试了多次classSolution{public:intsearch(vector&nums,inttarget){//分析:有序数组查找目标值二分查找//思路:leftmidrightif(nums.empty())return-1;intn=nums.size();intleft=0,right=n-1,mid=0;while(lefttarget)right=mid-1;elseleft=mid+1;}return-1;}};思路二:直接遍历classSolution{
题目链接:力扣题目:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现在nums中并且下标为4示例 2:输入:nums=[-1,0,3,5,9,12],target=2输出:-1解释:2不存在nums中因此返回-1提示:数组为升序,可以假设 nums 中的所有元素是不重复的。n 将在 [1,10000]之间。nums 的每个元素都将在 [-9999,9999]之间。解法一:二分法左闭
LeetCode704.二分查找这道题之前做过,但是这次再做还是花费了一些时间,最后还看了leetcode上的题解,不得不说虽然做完了,但是看了一些大神的题解还是醍醐灌顶。参考题解classSolution{public:intsearch(vectorint>&nums,inttarget){intresult=-1;intstart=0;intend=nums.size()-1;while(startend){//注意intmid=start+(end-start)/2;if(nums[mid]==target){result=mid;break;}elseif(nums[mid]>tar
704.二分查找题目链接:力扣文章讲解:代码随想录视频讲解:手把手带你撕出正确的二分法|二分查找法|二分搜索法|LeetCode:704.二分查找_哔哩哔哩_bilibili看完随想录之后的想法两种情况1.左闭右闭 [] 2.左闭右开[) 当定义时为左闭右闭时,while中if的条件可以把边界排除if(nums[middle]>target){right=middle-1;}if(nums[middle]因为middle位置上的元素不可能包含target,下一次循环依然和定义的左闭右闭一样当定义为左闭右开时,right位置上的元素不可能包含target,所以条件定义为if(nums[middl
LeetCode704二分查找给定一个 n 个元素有序的(升序)整型数组 nums和一个目标值 target ,写一个函数搜索 nums 中的target,如果目标值存在返回下标,否则返回-1。前提条件:有序数组;2.数组中无重复元素;左闭右闭写法:左比右开写法: LeetCode 27移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。方法一:双指针思路: 题目要求删除等于val的数组元素,所以输出的数组长度必然小于原数组长度,在原数组的基础上输出删除val后的新数组。双指针,即分为左右两个指针,右指针 right 指向
数组:定义在连续内存空间上的相同类型的元素的集合702.二分查找27.移除元素702.二分查找题目链接:二分查找文章讲解:代码随想录.二分查找视频讲解:手把手带你撕出正确的二分法|二分查找法|二分搜索法|LeetCode:704.二分查找_哔哩哔哩_bilibili二分前提:有序数组,数组中无重复元素方法:结合数组的特征,可以为左闭右闭区间[0,数组长度-1],或者左闭右开区间[0,数组长度)。思考:左开右开区间,左开右闭区间,会怎样?小细节:1.加减运算符优先级高于位移运算符2.求两个数的中间值:mid=start+(end-start>>1)intsearch(int*nums,intnu
代码随想录算法训练营第一天|704.二分查找、27.移除元素数组理论基础一维数组二维数组704.二分查找:computer:左闭右闭写法:computer:左闭右开写法:eyes:题目总结:eyes:27.移除元素:computer:暴力解法:computer:双指针法(快慢指针法)同向相向:eyes:题目总结:eyes::balloon:心得收获数组理论基础一维数组数组是存放在连续内存空间上的相同类型数据的集合数组下标都是从0开始的数组内存空间的地址是连续的vector和array的区别:vector的底层实现是array,严格来讲vector是容器,不是数组数组的元素是不能删的,只能覆盖二
## LeetCode704-二分查找-题目描述:给定一个n个元素有序的(升序)整型数组nums和一个目标值target,-写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。给定一个n个元素有序的(升序)整型数组nums和一个目标值target ,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。-题目链接:leetcode.cn/problems/bi…-解题思路: 用二分法。从中间开始查找,根据target值的大小改变left和right的值-二分法使用条件:1.查找的是有序的数组2.没有重复的元素方法1: 左闭右闭区间[left,r