Skip to content

Commit 0a6e16c

Browse files
committed
feat: add solutions to lcof problem: No.42
面试题42. 连续子数组的最大和
1 parent 80659c6 commit 0a6e16c

File tree

3 files changed

+46
-0
lines changed

3 files changed

+46
-0
lines changed

lcof/面试题42. 连续子数组的最大和/README.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,34 @@ func maxSubArray(nums []int) int {
110110
}
111111
```
112112

113+
### **TypeScript**
114+
115+
```ts
116+
function maxSubArray(nums: number[]): number {
117+
let res = nums[0];
118+
for (let i = 1; i < nums.length; i++) {
119+
nums[i] = Math.max(nums[i], nums[i - 1] + nums[i]);
120+
res = Math.max(res, nums[i]);
121+
}
122+
return res;
123+
}
124+
```
125+
126+
### **Rust**
127+
128+
```rust
129+
impl Solution {
130+
pub fn max_sub_array(mut nums: Vec<i32>) -> i32 {
131+
let mut res = nums[0];
132+
for i in 1..nums.len() {
133+
nums[i] = nums[i].max(nums[i - 1] + nums[i]);
134+
res = res.max(nums[i]);
135+
}
136+
res
137+
}
138+
}
139+
```
140+
113141
### **...**
114142

115143
```
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
impl Solution {
2+
pub fn max_sub_array(mut nums: Vec<i32>) -> i32 {
3+
let mut res = nums[0];
4+
for i in 1..nums.len() {
5+
nums[i] = nums[i].max(nums[i - 1] + nums[i]);
6+
res = res.max(nums[i]);
7+
}
8+
res
9+
}
10+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
function maxSubArray(nums: number[]): number {
2+
let res = nums[0];
3+
for (let i = 1; i < nums.length; i++) {
4+
nums[i] = Math.max(nums[i], nums[i - 1] + nums[i]);
5+
res = Math.max(res, nums[i]);
6+
}
7+
return res;
8+
}

0 commit comments

Comments
 (0)