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

 704. 二分查找

  • 刷题icon-default.png?t=N7T8https://leetcode.cn/problems/binary-search/
  • 文章讲解icon-default.png?t=N7T8https://programmercarl.com/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE.html
  • 视频讲解icon-default.png?t=N7T8https://www.bilibili.com/video/BV1fA4y1o715
  • 题解1(左闭右开解法):
class Solution {
    public int search(int[] nums, int target) {
        // 左闭右开写法
        int left = 0,right = nums.length;
        while(left < right){
            int middle = (left + right) / 2;
            if(nums[middle] > target){
                right = middle;
            }
            else if(nums[middle] < target){
                left = middle + 1;
            }
            else{
                return middle;
            }
        }
        return -1;
    }
}
  •  题解2(左闭右闭解法)
class Solution {
    public int search(int[] nums, int target) {
        // 左闭右闭写法
        int left = 0,right = nums.length-1;
        while(left <= right){
            int middle = (left + right) / 2;
            if(nums[middle] > target){
                right = middle - 1;
            }
            else if(nums[middle] < target){
                left = middle + 1;
            }
            else{
                return middle;
            }
        }
        return -1;
    }
}

27. 移除元素

  • 刷题icon-default.png?t=N7T8https://leetcode.cn/problems/remove-element/
  • 文章讲解icon-default.png?t=N7T8https://programmercarl.com/0027.%E7%A7%BB%E9%99%A4%E5%85%83%E7%B4%A0.html
  • 视频讲解icon-default.png?t=N7T8https://www.bilibili.com/video/BV12A4y1Z7LP
  • 题解(快慢指针解法):
class Solution {
    public int removeElement(int[] nums, int val) {
        // 快慢指针解法
        int low = 0;
        int size = nums.length;
        for(int fast = 0;fast < size;fast ++){
            if(nums[fast] != val){
                nums[low ++] = nums[fast];
            }
        }
        return low;
    }
}

你可能感兴趣的:(代码随想录训练营一刷,算法)