打卡第一天,希望自己可以坚持两个月,把算法能力提升去,然后方便找工作。
然后很久没有刷算法题目了,这次的态度要很端正,因为之前刷题目的过程都不是一个非常完整的过程,所以这次是再次尝试,也是新的起点,要好好完成它。当然我也相信自己可以做好他,这件事是我每天必须要做的第一件事情。优先级最高。期待2个月后更加优秀的自己。
力扣704题
1 class Solution { 2 public: 3 int search(vector<int>& nums, int target) { 4 //左闭右闭写法 5 int left=0; 6 int right=nums.size()-1;//因为右边那个也算,所以要-1,如果不-1,就不算了 7 while(left<=right){ 8 int mid=left+(right-left)/2; 9 //[0,5],0+5/2=2所以mid的那个数字是2 10 if(nums[mid]>target){ 11 right=mid-1; 12 }else if(nums[mid]<target){ 13 left=mid+1; 14 }else{ 15 //nums[mid]==target 16 return mid; 17 } 18 } 19 return -1; 20 } 21 };
左闭右开写法
class Solution { public: int search(vector<int>& nums, int target) { //左闭右开写法 int left=0; int right=nums.size();//因为右边是开区间,所以是nums.size(),这是遍历不到的 while(left<right){ int mid=left+(right-left)/2; if(nums[mid]==target){ return mid; }else if(nums[mid]>target){ right=mid; } else{ left=mid+1; } } return -1; } };
力扣27题
暴力解法
还有一个注意点是,外层for循环的条件是i<size
我最开始写得i<nums.size()这个不对,会超时,因为不管怎么样,这个数组的size函数得到的结果都是原始结果,不会变得
会变得是我们自己定义的size变量
标签:---,right,nums,int,力扣,打卡,size From: https://www.cnblogs.com/bojiandkake/p/17042701.html