Skip to content

Commit 7a153f6

Browse files
committed
feat: add solutions to lc problem: No.2016
No.2016.Maximum Difference Between Increasing Elements
1 parent 59eccdc commit 7a153f6

File tree

6 files changed

+193
-12
lines changed

6 files changed

+193
-12
lines changed

solution/2000-2099/2016.Maximum Difference Between Increasing Elements/README.md

Lines changed: 73 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -66,29 +66,51 @@
6666
<!-- 这里可写当前语言的特殊实现逻辑 -->
6767

6868
```python
69-
69+
class Solution:
70+
def maximumDifference(self, nums: List[int]) -> int:
71+
mi = nums[0]
72+
ans, n = -1, len(nums)
73+
for i in range(1, n):
74+
if nums[i] > mi:
75+
ans = max(ans, nums[i] - mi)
76+
else:
77+
mi = nums[i]
78+
return ans
7079
```
7180

7281
### **Java**
7382

7483
<!-- 这里可写当前语言的特殊实现逻辑 -->
7584

7685
```java
77-
86+
class Solution {
87+
public int maximumDifference(int[] nums) {
88+
int mi = nums[0];
89+
int ans = -1;
90+
for (int i = 1; i < nums.length; ++i) {
91+
if (nums[i] > mi) {
92+
ans = Math.max(ans, nums[i] - mi);
93+
} else {
94+
mi = nums[i];
95+
}
96+
}
97+
return ans;
98+
}
99+
}
78100
```
79101

80102
### **TypeScript**
81103

82104
```ts
83105
function maximumDifference(nums: number[]): number {
84-
const n = nums.length;
85-
let min = nums[0];
86-
let res = -1;
87-
for (let i = 1; i < n; i++) {
88-
res = Math.max(res, nums[i] - min);
89-
min = Math.min(min, nums[i]);
90-
}
91-
return res === 0 ? -1 : res;
106+
const n = nums.length;
107+
let min = nums[0];
108+
let res = -1;
109+
for (let i = 1; i < n; i++) {
110+
res = Math.max(res, nums[i] - min);
111+
min = Math.min(min, nums[i]);
112+
}
113+
return res === 0 ? -1 : res;
92114
}
93115
```
94116

@@ -111,6 +133,47 @@ impl Solution {
111133
}
112134
```
113135

136+
### **C++**
137+
138+
```cpp
139+
class Solution {
140+
public:
141+
int maximumDifference(vector<int>& nums) {
142+
int mi = nums[0];
143+
int ans = -1;
144+
for (int i = 1, n = nums.size(); i < n; ++i)
145+
{
146+
if (nums[i] > mi) ans = max(ans, nums[i] - mi);
147+
else mi = nums[i];
148+
}
149+
return ans;
150+
}
151+
};
152+
```
153+
154+
### **Go**
155+
156+
```go
157+
func maximumDifference(nums []int) int {
158+
mi, ans := nums[0], -1
159+
for i, n := 1, len(nums); i < n; i++ {
160+
if nums[i] > mi {
161+
ans = max(ans, nums[i]-mi)
162+
} else {
163+
mi = nums[i]
164+
}
165+
}
166+
return ans
167+
}
168+
169+
func max(a, b int) int {
170+
if a > b {
171+
return a
172+
}
173+
return b
174+
}
175+
```
176+
114177
### **...**
115178

116179
```

solution/2000-2099/2016.Maximum Difference Between Increasing Elements/README_EN.md

Lines changed: 65 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,35 @@ The maximum difference occurs with i = 0 and j = 3, nums[j] - nums[i] = 10 - 1 =
5353
### **Python3**
5454

5555
```python
56-
56+
class Solution:
57+
def maximumDifference(self, nums: List[int]) -> int:
58+
mi = nums[0]
59+
ans, n = -1, len(nums)
60+
for i in range(1, n):
61+
if nums[i] > mi:
62+
ans = max(ans, nums[i] - mi)
63+
else:
64+
mi = nums[i]
65+
return ans
5766
```
5867

5968
### **Java**
6069

6170
```java
62-
71+
class Solution {
72+
public int maximumDifference(int[] nums) {
73+
int mi = nums[0];
74+
int ans = -1;
75+
for (int i = 1; i < nums.length; ++i) {
76+
if (nums[i] > mi) {
77+
ans = Math.max(ans, nums[i] - mi);
78+
} else {
79+
mi = nums[i];
80+
}
81+
}
82+
return ans;
83+
}
84+
}
6385
```
6486

6587
### **TypeScript**
@@ -96,6 +118,47 @@ impl Solution {
96118
}
97119
```
98120

121+
### **C++**
122+
123+
```cpp
124+
class Solution {
125+
public:
126+
int maximumDifference(vector<int>& nums) {
127+
int mi = nums[0];
128+
int ans = -1;
129+
for (int i = 1, n = nums.size(); i < n; ++i)
130+
{
131+
if (nums[i] > mi) ans = max(ans, nums[i] - mi);
132+
else mi = nums[i];
133+
}
134+
return ans;
135+
}
136+
};
137+
```
138+
139+
### **Go**
140+
141+
```go
142+
func maximumDifference(nums []int) int {
143+
mi, ans := nums[0], -1
144+
for i, n := 1, len(nums); i < n; i++ {
145+
if nums[i] > mi {
146+
ans = max(ans, nums[i]-mi)
147+
} else {
148+
mi = nums[i]
149+
}
150+
}
151+
return ans
152+
}
153+
154+
func max(a, b int) int {
155+
if a > b {
156+
return a
157+
}
158+
return b
159+
}
160+
```
161+
99162
### **...**
100163

101164
```
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
class Solution {
2+
public:
3+
int maximumDifference(vector<int>& nums) {
4+
int mi = nums[0];
5+
int ans = -1;
6+
for (int i = 1, n = nums.size(); i < n; ++i)
7+
{
8+
if (nums[i] > mi) ans = max(ans, nums[i] - mi);
9+
else mi = nums[i];
10+
}
11+
return ans;
12+
}
13+
};
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
func maximumDifference(nums []int) int {
2+
mi, ans := nums[0], -1
3+
for i, n := 1, len(nums); i < n; i++ {
4+
if nums[i] > mi {
5+
ans = max(ans, nums[i]-mi)
6+
} else {
7+
mi = nums[i]
8+
}
9+
}
10+
return ans
11+
}
12+
13+
func max(a, b int) int {
14+
if a > b {
15+
return a
16+
}
17+
return b
18+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class Solution {
2+
public int maximumDifference(int[] nums) {
3+
int mi = nums[0];
4+
int ans = -1;
5+
for (int i = 1; i < nums.length; ++i) {
6+
if (nums[i] > mi) {
7+
ans = Math.max(ans, nums[i] - mi);
8+
} else {
9+
mi = nums[i];
10+
}
11+
}
12+
return ans;
13+
}
14+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class Solution:
2+
def maximumDifference(self, nums: List[int]) -> int:
3+
mi = nums[0]
4+
ans, n = -1, len(nums)
5+
for i in range(1, n):
6+
if nums[i] > mi:
7+
ans = max(ans, nums[i] - mi)
8+
else:
9+
mi = nums[i]
10+
return ans

0 commit comments

Comments
 (0)