977.有序数组的平方
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。
var sortedSquares = function(nums) {
let res = []
for(let i=0, j=nums.length-1;i<=j;){
const left=Math.abs(nums[i])
const right=Math.abs(nums[j])
if(right>left){
res.unshift(right*right)
j--
}else{
res.unshift(left*left)
i++
}
}
console.log(res)
return res
};
sortedSquares([-4,-1,0,3,10])
209.长度最小的子数组
给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。
minSubArrayLen = function (target, nums) {
const len =nums.length;
let l= r = sum = 0;
res = len +1
while(r<len){
sum+=nums[r++]
while(sum>=target){
res = res<r-l?res:r-l
sum-=nums[l++]
}
}
console.log(res>len?0:res)
return res>len?0:res
}
minSubArrayLen(4,[1,4,4])
59.螺旋矩阵II
给你一个正整数 n
,生成一个包含 1
到 n2
所有元素,且元素按顺时针顺序螺旋排列的 n x n
正方形矩阵 matrix
。
generateMatrix = function(n) {
let l = 0, r = n - 1, t = 0, b = n - 1, num = 1, tar = n * n
const matrix = new Array(n).fill().map(() => new Array(n).fill(0))
while(num <= tar){
for(let i = l; i <= r; i++) {
matrix[t][i] = num++
}
t++
for(let i = t; i <= b; i++) {
matrix[i][r] = num++
}
r--
for(let i = r; i >= l; i--) {
matrix[b][i] = num++
}
b--
for(let i = b; i >= t; i--) {
matrix[i][l] = num++
}
l++
}
console.log(matrix)
return matrix
}
generateMatrix(3)