Skip to content

Commit f06e587

Browse files
committed
feat: update solutions to lc problems: No.0503,0504
* No.0503.Next Greater Element II * No.0504.Base 7
1 parent d56407c commit f06e587

File tree

4 files changed

+24
-24
lines changed

4 files changed

+24
-24
lines changed

solution/0500-0599/0503.Next Greater Element II/README.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -255,18 +255,16 @@ func nextGreaterElements(nums []int) []int {
255255

256256
```ts
257257
function nextGreaterElements(nums: number[]): number[] {
258-
let stack: number[] = [],
258+
const stack: number[] = [],
259259
len = nums.length;
260-
let res: number[] = new Array(len).fill(-1);
260+
const res: number[] = new Array(len).fill(-1);
261261
for (let i = 0; i < 2 * len - 1; i++) {
262-
while (
263-
stack.length !== 0 &&
264-
nums[stack[stack.length - 1]] < nums[i % len]
265-
) {
266-
res[stack[stack.length - 1]] = nums[i % len];
262+
const j = i % len;
263+
while (stack.length !== 0 && nums[stack[stack.length - 1]] < nums[j]) {
264+
res[stack[stack.length - 1]] = nums[j];
267265
stack.pop();
268266
}
269-
stack.push(i % len);
267+
stack.push(j);
270268
}
271269
return res;
272270
}

solution/0500-0599/0503.Next Greater Element II/README_EN.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -243,18 +243,16 @@ func nextGreaterElements(nums []int) []int {
243243

244244
```ts
245245
function nextGreaterElements(nums: number[]): number[] {
246-
let stack: number[] = [],
246+
const stack: number[] = [],
247247
len = nums.length;
248-
let res: number[] = new Array(len).fill(-1);
248+
const res: number[] = new Array(len).fill(-1);
249249
for (let i = 0; i < 2 * len - 1; i++) {
250-
while (
251-
stack.length !== 0 &&
252-
nums[stack[stack.length - 1]] < nums[i % len]
253-
) {
254-
res[stack[stack.length - 1]] = nums[i % len];
250+
const j = i % len;
251+
while (stack.length !== 0 && nums[stack[stack.length - 1]] < nums[j]) {
252+
res[stack[stack.length - 1]] = nums[j];
255253
stack.pop();
256254
}
257-
stack.push(i % len);
255+
stack.push(j);
258256
}
259257
return res;
260258
}
Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
function nextGreaterElements(nums: number[]): number[] {
2-
let stack: number[] = [],
2+
const stack: number[] = [],
33
len = nums.length;
4-
let res: number[] = new Array(len).fill(-1);
4+
const res: number[] = new Array(len).fill(-1);
55
for (let i = 0; i < 2 * len - 1; i++) {
6-
while (
7-
stack.length !== 0 &&
8-
nums[stack[stack.length - 1]] < nums[i % len]
9-
) {
10-
res[stack[stack.length - 1]] = nums[i % len];
6+
const j = i % len;
7+
while (stack.length !== 0 && nums[stack[stack.length - 1]] < nums[j]) {
8+
res[stack[stack.length - 1]] = nums[j];
119
stack.pop();
1210
}
13-
stack.push(i % len);
11+
stack.push(j);
1412
}
1513
return res;
1614
}

solution/0500-0599/0504.Base 7/README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,12 @@
3636

3737
<!-- 这里可写通用的实现逻辑 -->
3838

39+
**方法一:模拟**
40+
41+
我们不妨假设 `num` 大于等于 $0$,那么,如果 `num` 等于 $0$,只需要返回 $0$ 即可。否则,我们将 $num$ 模 $7$ 的结果保存起来,最后逆序拼接成字符串即可。
42+
43+
时间复杂度 $O(\log n)$,忽略答案的空间消耗,空间复杂度 $O(1)$。其中 $n$ 是 `num` 的绝对值大小。
44+
3945
<!-- tabs:start -->
4046

4147
### **Python3**

0 commit comments

Comments
 (0)