704. 二分查找
题目链接:https://leetcode.cn/problems/binary-search/
文章讲解:https://programmercarl.com/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE.html
视频讲解:https://www.bilibili.com/video/BV1fA4y1o715
27. 移除元素
题目链接:https://leetcode.cn/problems/remove-element/
文章讲解:https://programmercarl.com/0027.%E7%A7%BB%E9%99%A4%E5%85%83%E7%B4%A0.html
视频讲解:https://www.bilibili.com/video/BV12A4y1Z7LP
感想:二分查找因为以前有所了解,所以知道大概思路,但是一直没有太理解那个边界的问题,看完随想录后对于边界问题更加理解了,移除元素看完以后的第一反应是创建一个新的数组,把不需要移除的元素赋给新的数组。看完随想录后,发现可以直接在一个数组上实现,更加简便。
二分查找代码:
左闭右闭区间
int search(int* nums, int numsSize, int target){
int left = 0 ;
int right = numsSize ;
int middle ;
while(left <right){
middle = (left+right)/2;
if(nums[middle]>target){
right = middle ;
}else if(nums[middle] < target){
left = middle+1 ;
}else{
return middle ;
}
}
return -1 ;
}
左闭右开区间
int search(int* nums, int numsSize, int target){
int left = 0 ;
int right = numsSize ;
int middle ;
while(left <right){
middle = (left+right)/2;
if(nums[middle]>target){
right = middle ;
}else if(nums[middle] < target){
left = middle+1 ;
}else{
return middle ;
}
}
return -1 ;
}
移除元素代码
int removeElement(int* nums, int numsSize, int val){
int slow = 0 ;
int fast ;
for(fast = 0 ; fast < numsSize; ++fast){
if(nums[fast]!= val){
nums[slow] = nums[fast];
slow++;
}
}
return slow ;
}
第一次写博客,不知道为什么无法上传图片。链接过来点进去也是空的,只能写完以后ctrl c,ctrl v。
希望这是一个好的开始,以后能够有总结和写博客的习惯。