publicintminSubArrayLen(int target,int[] nums){int left =0;int right =0;int sum =0;int minLen = nums.length +1;while(right < nums.length){sum += nums[right];// 当一旦大于给定值,便缩小窗口,看左边界收缩后是否最小长度会发生变化while(sum >= target){minLen =Math.min(minLen, right - left+1);sum -= nums[left++];}right++;}// 若不存在最小窗口(数组和 < target)或数组长度为0,则minLen应该赋为0return minLen == nums.length +1?0: minLen;}
59. 螺旋矩阵 II
按照顺时针走路,注意边界的选取
一开始的起点和终点需要选取好,在这,我选择前闭后闭方法
publicint[][]generateMatrix(int n){int[][] res =newint[n][n];int num =1;int matrixNum = n * n;int left =0;int right = n-1;int top =0;int bottom = n-1;while(num <= matrixNum){for(int i = left; i <= right; i++){res[top][i]= num++;}top++;for(int i = top; i <= bottom; i++){res[i][right]= num++;}right--;for(int i = right; i >= left; i--){res[bottom][i]= num++;}bottom--;for(int i = bottom; i >= top; i--){res[i][left]= num++;}left++;}return res;}