1. 程式人生 > 資訊 >印度拒絕削減電動汽車進口關稅,特斯拉計劃遭受打擊

印度拒絕削減電動汽車進口關稅,特斯拉計劃遭受打擊

滑動視窗:

class Solution {
    public int minSubArrayLen(int target, int[] nums) {
         int i=0;
         int j=0;
         int sum=0;
         int min=Integer.MAX_VALUE;
         while(j<nums.length){
             sum+=nums[j];
             if(sum<target){
                 j++;
             }else{
                min=Math.min(min,j-i+1);
                sum-=nums[i];
                i++;
                sum-=nums[j];
             }
         }
         return (min==Integer.MAX_VALUE)?0:min;

    }
}

二分查詢:

class Solution {
    //2,5,6,8,12,15
    public int minSubArrayLen(int target, int[] nums) {
        
        int min=Integer.MAX_VALUE;
        int[] number=new int[nums.length+1];
        for(int i=1;i<number.length;i++){//字首和的題目加入一個0非常關鍵
       number[i]=nums[i-1];
        }
        for(int i=1;i<number.length;i++){
             number[i]+=number[i-1];
             //在0..i-1找字首和之差》=target(最後一個滿足這個的下標)
             int lo=0;
             int hi=i;
             while(lo<hi){
                 int mid=lo+(hi-lo)/2;//中間偏右
                 if(number[i]-number[mid]<target)//[hi,n)是不滿足條件的
                     hi=mid;//mid給右邊
                 else//mid給右邊,[0,lo)是滿足條件的
                     lo=mid+1;          
             }
             if(lo-1>=0&&number[i]-number[lo-1]>=target)
                 min=Math.min(min,i-lo+1);
        }
        if(min==Integer.MAX_VALUE)return 0;
        return min;

    }
}