Skip to content

Commit a79ecfa

Browse files
committed
feat: add solutions to lcof problem: No.47
面试题 47. 礼物的最大价值
1 parent ba27192 commit a79ecfa

File tree

3 files changed

+78
-0
lines changed

3 files changed

+78
-0
lines changed

lcof/面试题47. 礼物的最大价值/README.md

+44
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,50 @@ func max(a, b int) int {
127127
}
128128
```
129129

130+
### **TypeScript**
131+
132+
```ts
133+
function maxValue(grid: number[][]): number {
134+
let n = grid.length;
135+
let m = grid[0].length;
136+
for (let i = 1; i < n; i++) {
137+
grid[i][0] += grid[i - 1][0];
138+
}
139+
for (let i = 1; i < m; i++) {
140+
grid[0][i] += grid[0][i - 1];
141+
}
142+
for (let i = 1; i < n; i++) {
143+
for (let j = 1; j < m; j++) {
144+
grid[i][j] += Math.max(grid[i][j - 1], grid[i - 1][j]);
145+
}
146+
}
147+
return grid[n - 1][m - 1];
148+
}
149+
```
150+
151+
### **Rust**
152+
153+
```rust
154+
impl Solution {
155+
pub fn max_value(mut grid: Vec<Vec<i32>>) -> i32 {
156+
let n = grid.len();
157+
let m = grid[0].len();
158+
for i in 1..n {
159+
grid[i][0] += grid[i - 1][0];
160+
}
161+
for i in 1..m {
162+
grid[0][i] += grid[0][i - 1];
163+
}
164+
for i in 1..n {
165+
for j in 1..m {
166+
grid[i][j] += grid[i][j - 1].max(grid[i - 1][j]);
167+
}
168+
}
169+
grid[n - 1][m - 1]
170+
}
171+
}
172+
```
173+
130174
### **...**
131175

132176
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
impl Solution {
2+
pub fn max_value(mut grid: Vec<Vec<i32>>) -> i32 {
3+
let n = grid.len();
4+
let m = grid[0].len();
5+
for i in 1..n {
6+
grid[i][0] += grid[i - 1][0];
7+
}
8+
for i in 1..m {
9+
grid[0][i] += grid[0][i - 1];
10+
}
11+
for i in 1..n {
12+
for j in 1..m {
13+
grid[i][j] += grid[i][j - 1].max(grid[i - 1][j]);
14+
}
15+
}
16+
grid[n - 1][m - 1]
17+
}
18+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
function maxValue(grid: number[][]): number {
2+
let n = grid.length;
3+
let m = grid[0].length;
4+
for (let i = 1; i < n; i++) {
5+
grid[i][0] += grid[i - 1][0];
6+
}
7+
for (let i = 1; i < m; i++) {
8+
grid[0][i] += grid[0][i - 1];
9+
}
10+
for (let i = 1; i < n; i++) {
11+
for (let j = 1; j < m; j++) {
12+
grid[i][j] += Math.max(grid[i][j - 1], grid[i - 1][j]);
13+
}
14+
}
15+
return grid[n - 1][m - 1];
16+
}

0 commit comments

Comments
 (0)