File tree Expand file tree Collapse file tree 3 files changed +97
-12
lines changed Expand file tree Collapse file tree 3 files changed +97
-12
lines changed Original file line number Diff line number Diff line change @@ -224,6 +224,49 @@ class Solution:
224
224
return matrix
225
225
```
226
226
227
+ javaScript
228
+
229
+ ``` js
230
+
231
+ /**
232
+ * @param {number} n
233
+ * @return {number[][]}
234
+ */
235
+ var generateMatrix = function (n ) {
236
+ // new Array(n).fill(new Array(n))
237
+ // 使用fill --> 填充的是同一个数组地址
238
+ const res = Array .from ({length: n}).map (() => new Array (n));
239
+ let loop = n >> 1 , i = 0 , // 循环次数
240
+ count = 1 ,
241
+ startX = startY = 0 ; // 起始位置
242
+ while (++ i <= loop) {
243
+ // 定义行列
244
+ let row = startX, column = startY;
245
+ // [ startY, n - i)
246
+ while (column < n - i) {
247
+ res[row][column++ ] = count++ ;
248
+ }
249
+ // [ startX, n - i)
250
+ while (row < n - i) {
251
+ res[row++ ][column] = count++ ;
252
+ }
253
+ // [n - i , startY)
254
+ while (column > startY) {
255
+ res[row][column-- ] = count++ ;
256
+ }
257
+ // [n - i , startX)
258
+ while (row > startX) {
259
+ res[row-- ][column] = count++ ;
260
+ }
261
+ startX = ++ startY;
262
+ }
263
+ if (n & 1 ) {
264
+ res[startX][startY] = count;
265
+ }
266
+ return res;
267
+ };
268
+ ```
269
+
227
270
228
271
229
272
-----------------------
Original file line number Diff line number Diff line change @@ -175,19 +175,24 @@ Go:
175
175
176
176
177
177
JavaScript:
178
- ```
179
- var minSubArrayLen = (target, nums) => {
180
- let left = 0, right = 0,win = Infinity,sum = 0;
181
- while(right < nums.length){
182
- sum += nums[right];
183
- while(sum >= target){
184
- win = right - left + 1 < win? right - left + 1 : win;
185
- sum -= nums[left];
186
- left++;
187
- }
188
- right++;
178
+
179
+ ``` js
180
+
181
+ var minSubArrayLen = function (target , nums ) {
182
+ // 长度计算一次
183
+ const len = nums .length ;
184
+ let l = r = sum = 0 ,
185
+ res = len + 1 ; // 子数组最大不会超过自身
186
+ while (r < len) {
187
+ sum += nums[r++ ];
188
+ // 窗口滑动
189
+ while (sum >= target) {
190
+ // r始终为开区间 [l, r)
191
+ res = res < r - l ? res : r - l;
192
+ sum-= nums[l++ ];
193
+ }
189
194
}
190
- return win === Infinity ? 0:win ;
195
+ return res > len ? 0 : res ;
191
196
};
192
197
```
193
198
Original file line number Diff line number Diff line change @@ -254,6 +254,43 @@ func search(nums []int, target int) int {
254
254
}
255
255
```
256
256
257
+ javaScript
258
+
259
+ ``` js
260
+
261
+ // (版本一)左闭右闭区间
262
+
263
+ var search = function (nums , target ) {
264
+ let l = 0 , r = nums .length - 1 ;
265
+ // 区间 [l, r]
266
+ while (l <= r) {
267
+ let mid = (l + r) >> 1 ;
268
+ if (nums[mid] === target) return mid;
269
+ let isSmall = nums[mid] < target;
270
+ l = isSmall ? mid + 1 : l;
271
+ r = isSmall ? r : mid - 1 ;
272
+ }
273
+ return - 1 ;
274
+ };
275
+
276
+ // (版本二)左闭右开区间
277
+
278
+ var search = function (nums , target ) {
279
+ let l = 0 , r = nums .length ;
280
+ // 区间 [l, r)
281
+ while (l < r) {
282
+ let mid = (l + r) >> 1 ;
283
+ if (nums[mid] === target) return mid;
284
+ let isSmall = nums[mid] < target;
285
+ l = isSmall ? mid + 1 : l;
286
+ // 所以 mid 不会被取到
287
+ r = isSmall ? r : mid;
288
+ }
289
+ return - 1 ;
290
+ };
291
+
292
+ ```
293
+
257
294
258
295
259
296
You can’t perform that action at this time.
0 commit comments