mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 11:34:46 +08:00
Merge pull request #209 from flames519/master
数组 0704,0209, 0059javascript版本
This commit is contained in:
@ -224,6 +224,49 @@ class Solution:
|
|||||||
return matrix
|
return matrix
|
||||||
```
|
```
|
||||||
|
|
||||||
|
javaScript
|
||||||
|
|
||||||
|
```js
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {number} n
|
||||||
|
* @return {number[][]}
|
||||||
|
*/
|
||||||
|
var generateMatrix = function(n) {
|
||||||
|
// new Array(n).fill(new Array(n))
|
||||||
|
// 使用fill --> 填充的是同一个数组地址
|
||||||
|
const res = Array.from({length: n}).map(() => new Array(n));
|
||||||
|
let loop = n >> 1, i = 0, //循环次数
|
||||||
|
count = 1,
|
||||||
|
startX = startY = 0; // 起始位置
|
||||||
|
while(++i <= loop) {
|
||||||
|
// 定义行列
|
||||||
|
let row = startX, column = startY;
|
||||||
|
// [ startY, n - i)
|
||||||
|
while(column < n - i) {
|
||||||
|
res[row][column++] = count++;
|
||||||
|
}
|
||||||
|
// [ startX, n - i)
|
||||||
|
while(row < n - i) {
|
||||||
|
res[row++][column] = count++;
|
||||||
|
}
|
||||||
|
// [n - i , startY)
|
||||||
|
while(column > startY) {
|
||||||
|
res[row][column--] = count++;
|
||||||
|
}
|
||||||
|
// [n - i , startX)
|
||||||
|
while(row > startX) {
|
||||||
|
res[row--][column] = count++;
|
||||||
|
}
|
||||||
|
startX = ++startY;
|
||||||
|
}
|
||||||
|
if(n & 1) {
|
||||||
|
res[startX][startY] = count;
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
|
@ -175,19 +175,24 @@ Go:
|
|||||||
|
|
||||||
|
|
||||||
JavaScript:
|
JavaScript:
|
||||||
```
|
|
||||||
var minSubArrayLen = (target, nums) => {
|
```js
|
||||||
let left = 0, right = 0,win = Infinity,sum = 0;
|
|
||||||
while(right < nums.length){
|
var minSubArrayLen = function(target, nums) {
|
||||||
sum += nums[right];
|
// 长度计算一次
|
||||||
while(sum >= target){
|
const len = nums.length;
|
||||||
win = right - left + 1 < win? right - left + 1 : win;
|
let l = r = sum = 0,
|
||||||
sum -= nums[left];
|
res = len + 1; // 子数组最大不会超过自身
|
||||||
left++;
|
while(r < len) {
|
||||||
}
|
sum += nums[r++];
|
||||||
right++;
|
// 窗口滑动
|
||||||
|
while(sum >= target) {
|
||||||
|
// r始终为开区间 [l, r)
|
||||||
|
res = res < r - l ? res : r - l;
|
||||||
|
sum-=nums[l++];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return win === Infinity? 0:win;
|
return res > len ? 0 : res;
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -254,6 +254,43 @@ func search(nums []int, target int) int {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
javaScript
|
||||||
|
|
||||||
|
```js
|
||||||
|
|
||||||
|
// (版本一)左闭右闭区间
|
||||||
|
|
||||||
|
var search = function(nums, target) {
|
||||||
|
let l = 0, r = nums.length - 1;
|
||||||
|
// 区间 [l, r]
|
||||||
|
while(l <= r) {
|
||||||
|
let mid = (l + r) >> 1;
|
||||||
|
if(nums[mid] === target) return mid;
|
||||||
|
let isSmall = nums[mid] < target;
|
||||||
|
l = isSmall ? mid + 1 : l;
|
||||||
|
r = isSmall ? r : mid - 1;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
};
|
||||||
|
|
||||||
|
// (版本二)左闭右开区间
|
||||||
|
|
||||||
|
var search = function(nums, target) {
|
||||||
|
let l = 0, r = nums.length;
|
||||||
|
// 区间 [l, r)
|
||||||
|
while(l < r) {
|
||||||
|
let mid = (l + r) >> 1;
|
||||||
|
if(nums[mid] === target) return mid;
|
||||||
|
let isSmall = nums[mid] < target;
|
||||||
|
l = isSmall ? mid + 1 : l;
|
||||||
|
// 所以 mid 不会被取到
|
||||||
|
r = isSmall ? r : mid;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
};
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user