Skip to content

Commit 1ed9a86

Browse files
committed
feat: add solutions to lc problem: No.1800. Maximum Ascending Subarray Sum
1 parent e273882 commit 1ed9a86

File tree

10 files changed

+299
-4
lines changed

10 files changed

+299
-4
lines changed

solution/1800-1899/1800.Maximum Ascending Subarray Sum/README.md

+69-2
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@
5454
<li><code>1 <= nums[i] <= 100</code></li>
5555
</ul>
5656

57-
5857
## 解法
5958

6059
<!-- 这里可写通用的实现逻辑 -->
@@ -66,15 +65,83 @@
6665
<!-- 这里可写当前语言的特殊实现逻辑 -->
6766

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

7281
### **Java**
7382

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

7685
```java
86+
class Solution {
87+
public int maxAscendingSum(int[] nums) {
88+
int cur = nums[0];
89+
int res = 0;
90+
for (int i = 1; i < nums.length; ++i) {
91+
if (nums[i] > nums[i - 1]) {
92+
cur += nums[i];
93+
} else {
94+
res = Math.max(res, cur);
95+
cur = nums[i];
96+
}
97+
}
98+
res = Math.max(res, cur);
99+
return res;
100+
}
101+
}
102+
```
103+
104+
### **C++**
105+
106+
```cpp
107+
class Solution {
108+
public:
109+
int maxAscendingSum(vector<int>& nums) {
110+
int res = 0, cur = nums[0];
111+
for (int i = 1; i < nums.size(); ++i) {
112+
if (nums[i] > nums[i - 1]) {
113+
cur += nums[i];
114+
} else {
115+
res = max(res, cur);
116+
cur = nums[i];
117+
}
118+
}
119+
res = max(res, cur);
120+
return res;
121+
}
122+
};
123+
```
77124
125+
### **Go**
126+
127+
```go
128+
func maxAscendingSum(nums []int) int {
129+
res, cur := 0, nums[0]
130+
for i := 1; i < len(nums); i++ {
131+
if nums[i] > nums[i-1] {
132+
cur += nums[i]
133+
} else {
134+
if res < cur {
135+
res = cur
136+
}
137+
cur = nums[i]
138+
}
139+
}
140+
if res < cur {
141+
res = cur
142+
}
143+
return res
144+
}
78145
```
79146

80147
### **...**

solution/1800-1899/1800.Maximum Ascending Subarray Sum/README_EN.md

+69-2
Original file line numberDiff line numberDiff line change
@@ -50,21 +50,88 @@
5050
<li><code>1 &lt;= nums[i] &lt;= 100</code></li>
5151
</ul>
5252

53-
5453
## Solutions
5554

5655
<!-- tabs:start -->
5756

5857
### **Python3**
5958

6059
```python
61-
60+
class Solution:
61+
def maxAscendingSum(self, nums: List[int]) -> int:
62+
res, cur = 0, nums[0]
63+
for i in range(1, len(nums)):
64+
if nums[i] > nums[i - 1]:
65+
cur += nums[i]
66+
else:
67+
res = max(res, cur)
68+
cur = nums[i]
69+
res = max(res, cur)
70+
return res
6271
```
6372

6473
### **Java**
6574

6675
```java
76+
class Solution {
77+
public int maxAscendingSum(int[] nums) {
78+
int cur = nums[0];
79+
int res = 0;
80+
for (int i = 1; i < nums.length; ++i) {
81+
if (nums[i] > nums[i - 1]) {
82+
cur += nums[i];
83+
} else {
84+
res = Math.max(res, cur);
85+
cur = nums[i];
86+
}
87+
}
88+
res = Math.max(res, cur);
89+
return res;
90+
}
91+
}
92+
```
93+
94+
### **C++**
95+
96+
```cpp
97+
class Solution {
98+
public:
99+
int maxAscendingSum(vector<int>& nums) {
100+
int res = 0, cur = nums[0];
101+
for (int i = 1; i < nums.size(); ++i) {
102+
if (nums[i] > nums[i - 1]) {
103+
cur += nums[i];
104+
} else {
105+
res = max(res, cur);
106+
cur = nums[i];
107+
}
108+
}
109+
res = max(res, cur);
110+
return res;
111+
}
112+
};
113+
```
67114
115+
### **Go**
116+
117+
```go
118+
func maxAscendingSum(nums []int) int {
119+
res, cur := 0, nums[0]
120+
for i := 1; i < len(nums); i++ {
121+
if nums[i] > nums[i-1] {
122+
cur += nums[i]
123+
} else {
124+
if res < cur {
125+
res = cur
126+
}
127+
cur = nums[i]
128+
}
129+
}
130+
if res < cur {
131+
res = cur
132+
}
133+
return res
134+
}
68135
```
69136

70137
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class Solution {
2+
public:
3+
int maxAscendingSum(vector<int>& nums) {
4+
int res = 0, cur = nums[0];
5+
for (int i = 1; i < nums.size(); ++i) {
6+
if (nums[i] > nums[i - 1]) {
7+
cur += nums[i];
8+
} else {
9+
res = max(res, cur);
10+
cur = nums[i];
11+
}
12+
}
13+
res = max(res, cur);
14+
return res;
15+
}
16+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
func maxAscendingSum(nums []int) int {
2+
res, cur := 0, nums[0]
3+
for i := 1; i < len(nums); i++ {
4+
if nums[i] > nums[i-1] {
5+
cur += nums[i]
6+
} else {
7+
if res < cur {
8+
res = cur
9+
}
10+
cur = nums[i]
11+
}
12+
}
13+
if res < cur {
14+
res = cur
15+
}
16+
return res
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class Solution {
2+
public int maxAscendingSum(int[] nums) {
3+
int cur = nums[0];
4+
int res = 0;
5+
for (int i = 1; i < nums.length; ++i) {
6+
if (nums[i] > nums[i - 1]) {
7+
cur += nums[i];
8+
} else {
9+
res = Math.max(res, cur);
10+
cur = nums[i];
11+
}
12+
}
13+
res = Math.max(res, cur);
14+
return res;
15+
}
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
class Solution:
2+
def maxAscendingSum(self, nums: List[int]) -> int:
3+
res, cur = 0, nums[0]
4+
for i in range(1, len(nums)):
5+
if nums[i] > nums[i - 1]:
6+
cur += nums[i]
7+
else:
8+
res = max(res, cur)
9+
cur = nums[i]
10+
res = max(res, cur)
11+
return res

solution/1800-1899/1822.Sign of the Product of an Array/README.md

+37
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,43 @@ var arraySign = function (nums) {
109109
};
110110
```
111111

112+
### **C++**
113+
114+
```cpp
115+
class Solution {
116+
public:
117+
int arraySign(vector<int>& nums) {
118+
int res = 1;
119+
for (auto &num : nums) {
120+
if (num == 0) {
121+
return 0;
122+
}
123+
if (num < 0) {
124+
res *= -1;
125+
}
126+
}
127+
return res;
128+
}
129+
};
130+
```
131+
132+
### **Go**
133+
134+
```go
135+
func arraySign(nums []int) int {
136+
res := 1
137+
for _, num := range nums {
138+
if num == 0 {
139+
return 0
140+
}
141+
if num < 0 {
142+
res *= -1
143+
}
144+
}
145+
return res
146+
}
147+
```
148+
112149
### **...**
113150

114151
```

solution/1800-1899/1822.Sign of the Product of an Array/README_EN.md

+37
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,43 @@ var arraySign = function (nums) {
9999
};
100100
```
101101

102+
### **C++**
103+
104+
```cpp
105+
class Solution {
106+
public:
107+
int arraySign(vector<int>& nums) {
108+
int res = 1;
109+
for (auto &num : nums) {
110+
if (num == 0) {
111+
return 0;
112+
}
113+
if (num < 0) {
114+
res *= -1;
115+
}
116+
}
117+
return res;
118+
}
119+
};
120+
```
121+
122+
### **Go**
123+
124+
```go
125+
func arraySign(nums []int) int {
126+
res := 1
127+
for _, num := range nums {
128+
if num == 0 {
129+
return 0
130+
}
131+
if num < 0 {
132+
res *= -1
133+
}
134+
}
135+
return res
136+
}
137+
```
138+
102139
### **...**
103140

104141
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
class Solution {
2+
public:
3+
int arraySign(vector<int>& nums) {
4+
int res = 1;
5+
for (auto &num : nums) {
6+
if (num == 0) {
7+
return 0;
8+
}
9+
if (num < 0) {
10+
res *= -1;
11+
}
12+
}
13+
return res;
14+
}
15+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
func arraySign(nums []int) int {
2+
res := 1
3+
for _, num := range nums {
4+
if num == 0 {
5+
return 0
6+
}
7+
if num < 0 {
8+
res *= -1
9+
}
10+
}
11+
return res
12+
}

0 commit comments

Comments
 (0)