class Solution {
public int[] sortedSquares(int[] nums) {
int left=0;
int right=nums.length-1;
int[]res=new int[right+1];
int k=right;
while(left<=right){
int i=nums[left]*nums[left];
int j=nums[right]*nums[right];
if(i>=j){
res[k]=i;
left++;
}else{
res[k]=j;
right--;
}
k--;
}
return res;
}
}
长度最小的子数组
class Solution {
public int minSubArrayLen(int target, int[] nums) {
int begin=0;
int sum=0;
int len=Integer.MAX_VALUE;
for(int j=0;j<nums.length;j++){
sum+=nums[j];
while(sum>=target){
len=Math.min(len,j-begin+1);
sum-=nums[begin];
begin++;
}
}
return len==Integer.MAX_VALUE?0:len;
}
}
螺旋矩阵II
class Solution {
public int[][] generateMatrix(int n) {
int loop=n/2;
int startX=0,startY=0;
int offset=1;
int count=1;
int i,j;
int[][]res=new int[n][n];
while(loop>0){
for(j=startY;j<n-offset;j++){
res[startX][j]=count;
count++;
}
for(i=startX;i<n-offset;i++){
res[i][j]=count;
count++;
}
for(j=n-offset;j>startY;j--){
res[i][j]=count;
count++;
}
for(i=n-offset;i>startX;i--){
res[i][j]=count;
count++;
}
startX++;
startY++;
offset++;
loop--;
}
if(n%2==1)res[startX][startY]=count;
return res;
}
}