代码随想录算法训练营 第一天 704 二分查找 27 移除元素
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;
    }
}
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号