209.长度最小的子数组
59.螺旋矩阵II
209.长度最小的子数组
双指针:
右索引:区间终止点
左索引:区间起始点
class Solution {
public int minSubArrayLen(int target, int[] nums) {
int n=nums.length;
int rightindex=0;
int leftindex=0;
int sum=0;
int result=nums.length+1;
for(;rightindex<n;rightindex++){
sum+=nums[rightindex];
while(sum>=target){
result=result>(rightindex-leftindex+1)?(rightindex-leftindex+1):result;
sum-=nums[leftindex];
leftindex++;
}
}
return result==nums.length+1?0:result;
}
}
59.螺旋矩阵II
模拟过程——>循环不变量
class Solution {
public int[][] generateMatrix(int n) {
int [][] nums=new int[n][n];
int startx=0;
int starty=0;
int circle=1;
int count=1;
while(circle<=n/2){
for(int i=starty;i<n-circle;i++){
nums[startx][i]=count++;
}
for(int i=startx;i<n-circle;i++){
nums[i][n-circle]=count++;
}
for(int i=n-circle;i>starty;i--){
nums[n-circle][i]=count++;
}
for(int i=n-circle;i>startx;i--){
nums[i][starty]=count++;
}
startx++;
starty++;
circle++;
}
if(n%2==1){
nums[n/2][n/2]=n*n;
}
return nums;
}
}