当前位置:   article > 正文

代码随想录算法刷题训练营_代码随想录算法训练营

代码随想录算法训练营

代码随想录算法训练营day01 :LeetCode(34)在排序数组中查找元素的第一个和最后一个位置、leetCode(35)搜索插入位置、leetCode(27)移除元素、leetCode(704)二分查找

LeetCode(34)在排序数组中查找元素的第一个和最后一个位置

class Solution {
    public int[] searchRange(int[] nums, int target) {
          int[] arrayFlag={-1,-1};
          for (int nums2 = 0; nums2 < nums.length; nums2++) {
            if(nums[nums2]==target){
                arrayFlag[0]=nums2;//第一个值找出来立刻退出
                break;
            }    
          }
          for (int num3 = arrayFlag[0]+1; num3 < nums.length; num3++) {
            if(nums[num3]==target){
                arrayFlag[1]=num3;//一直往最后一个值找,找不到进行判断
            }
          }
          if(arrayFlag[1]==-1){
            arrayFlag[1]=arrayFlag[0];//做一个判断,若为-1,将第一个值赋值给它
          }
          return arrayFlag;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

leetCode(35)搜索插入位置

class Solution {
    public int searchInsert(int[] nums, int target) {
        int left=0;
        int right=nums.length-1;
        while (left<=right) {
            int mid=(left+right)/2;
            if(target>nums[mid]){
                left=mid+1;
            }else if(target<nums[mid]){
                right=mid-1;
            }else{
                return mid;
            }    
        }
        return left;//通过二分查找,画图得到结果
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

leetCode(27)移除元素

class Solution {
    public int removeElement(int[] nums, int val) {
     int i=0;
     for (int nums2 = 0; nums2 < nums.length; nums2++) {
        if(nums[nums2]!=val){
            nums[i]=nums[nums2];
            ++i;
        }   
     }
     return i;
}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

leetCode(704)二分查找

class Solution {
    public int search(int[] nums, int target) {
    int left=0;
    int right=nums.length-1;
    while (left<=right) {
        int mid=(left+right)/2;
        if(target>nums[mid]){
            left=mid+1;
        }else if(target<nums[mid]){
            right=mid-1;
        }else{
            return mid;
        }    
    }
    return -1;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/981664
推荐阅读
相关标签
  

闽ICP备14008679号