有序数组的平方
function sortedSquares(nums: number[]): number[] {
let left:number = 0, right:number = nums.length - 1;
let p = nums.length - 1;
let resArr = new Array(nums.length).fill(0);
for(let i = 0; i < nums.length; i++ ) {
if(nums[left] * nums[left] > nums[right] * nums[right]) {
resArr[p] = nums[left] * nums[left];
left++;
}else {
resArr[p] = nums[right] * nums[right];
right--;
}
p--;
}
return resArr;
};
长度最小的子数组
function minSubArrayLen(target: number, nums: number[]): number {
let i:number = 0;
let sum:number = 0;
let subLength:number = 0;
for(let j = 0; j < nums.length; j++) {
sum += nums[j];
while(sum >= target) {
sum -= nums[i];
subLength = (subLength === 0) ? (j - i + 1) : Math.min(subLength, (j - i +1));
i++;
}
}
return subLength;
};
螺旋矩阵II
function generateMatrix(n: number): number[][] {
let startx:number = 0, starty:number = 0;
let mid:number = Math.floor(n / 2);
let count:number = 1;
const res: number[][] = new Array(n).fill(1).map(i => new Array(n));
let loop:number = Math.floor(n / 2);
let offset:number = 1;
let i:number = 0, j:number = 0;
while(loop--) {
i = startx;
j = starty;
for(j = starty; j < n - offset; j++) {
res[startx][j] = count++;
}
for(i = startx; i < n - offset; i++ ) {
res[i] [j] = count++;
}
for(; j > starty; j--){
res[i][j] = count++;
}
for(; i > startx; i--) {
res[i][j] = count++;
}
offset++;
startx++;
starty++;
}
if(n % 2) {
res[mid][mid] = count;
}
return res;
};