1、暴力
classSolution{publicint[]sortedSquares(int[] nums){// 暴力解法for(int i =0; i < nums.length; i++){int num = nums[i]* nums[i];
nums[i]= num;}for(int i =0; i < nums.length; i++){for(int j =1; j < nums.length; j++){if(nums[j-1]> nums[j]){int target = nums[j-1];
nums[j-1]= nums[j];
nums[j]= target;}}}return nums;}}2、双指针
classSolution{publicint[]sortedSquares(int[] nums){int left =0;int right = nums.length-1;int index = nums.length-1;int[] result =newint[nums.length];while(left <= right){if(nums[left]*nums[left]<= nums[right]*nums[right]){
result[index--]= nums[right]*nums[right];
right--;}else{
result[index--]= nums[left]*nums[left];
left++;}}return result;}}
209:长度最小的子数组(滑动窗口)
classSolution{publicintminSubArrayLen(int target,int[] nums){// 滑动窗口,左右窗口// 和int sum =0;// 满足条件的最少长度int result =Integer.MAX_VALUE;int i =0;//左窗口for(int j =0; j < nums.length; j++){
sum += nums[j];while(target <= sum){
result = result <(j-i+1)? result :(j-i+1);
sum -= nums[i++];}}return result ==Integer.MAX_VALUE?0: result;}}