leetcode 704 二分查找
思想:二分法
简单二分问题
注意二分问题有很多模式,二分问题查找核心是区间问题
注意所学两种写法:区间左闭右开 区间左闭右闭
class Solution {
public int search(int[] nums, int target) {
if(target > nums[nums.length-1] || target < nums[0]){
return -1;
}
int left = 0;
int right = nums.length - 1;
while(left <= right){
int mid = left + ((right - left) / 2);
if(nums[mid] > target){
right = mid - 1;
}else if(nums[mid] < target){
left = mid + 1;
}else{
return mid;
}
}
return -1;
}
}
拓展: 二分问题分为整数二分和浮点数二分 注意之后学习
leetcode 27 移除元素
思想:双指针思想
通过快慢指针思想处理字符串、数组等问题。
快指针遍历,处理数据,慢指针存放;
原地处理问题
class Solution {
public int removeElement(int[] nums, int val) {
int slow = 0;
for(int i = 0 ;i<nums.length;i++){
if(nums[i]!=val){
nums[slow++] = nums[i];
}
}
return slow;
}
}
标签:二分,27,target,nums,int,随想录,查找,移除 From: https://www.cnblogs.com/determination-e/p/18233597