代码随想录算法训练营 第一天 704 二分查找 27 移除元素

leetcode 704  二分查找

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 移除元素

lc 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;
    }
}

 

posted @ 2024-06-05 18:51  lorange  阅读(22)  评论(0)    收藏  举报