day1-陣列和連結串列

无悔的选择發表於2024-07-21

力扣
704.二分查詢
給定一個n個元素的有序的(升序)整型陣列nums和一個目標值target,寫一個函式搜尋nums中的target,如果目標值存在返回小標,否則返回-1。
思路:二分查詢法,定義左右邊界[left,right);不斷取中值縮小查詢範圍。

class Solution{
  public int search(int[] nums,int target){
    int left=0;
    int right=nums;
    while(right>=left){
      int mid=(left+right)/2;
      if(nums[mid]>target){
        right=mid-1;
      }else if{
        left=mid+1;
        }else{
          return mid;
      }
    }
      return -1;
  }
}

27.移除元素
給你一個陣列 nums和一個值 val,你需要原地移除所有數值等於val的元素。元素的順序可能發生改變。然後返回nums中與val不同的元素的數量。
思路:定義兩個指標用來對陣列操作,當fast指標指向的元素不等於val時;更新slow指標

  class Solution{
    public int removeElement(int[] nums,int val){
      int slow=0;
      for(int fast=0;fast<nums.length;fast++){
        if(nums[fast]!=val){
          nums[slow]=nums[fast];
          slow++;
      }
    }
      return slow;
  }
}

977.有序陣列的平方
給你一個按非遞減順序排序的整數陣列nums,返回每個數字的平方組成的新陣列,要求也按非遞減順序排序。nums=[-4,-3,-2,0,1,2,5]
思路:由於題目是要按非遞減順序排序,定義兩個指標從左右兩邊開始往中間靠攏。

class Solution{
  public int[] sortedSquares(int[] nums){
    
}
  }

相關文章