Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 2d1402e

Browse files
committed
feat: add rust solution to lc problems: No.2303,2304
- No.2303.Calculate Amount Paid in Taxes - No.2304.Minimum Path Cost in a Grid
1 parent 14322a7 commit 2d1402e

File tree

6 files changed

+131
-0
lines changed

6 files changed

+131
-0
lines changed

‎solution/2300-2399/2303.Calculate Amount Paid in Taxes/README.md‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,25 @@ func min(a, b int) int {
170170
}
171171
```
172172

173+
### **Rust**
174+
175+
```rust
176+
impl Solution {
177+
pub fn calculate_tax(brackets: Vec<Vec<i32>>, income: i32) -> f64 {
178+
let mut res = 0f64;
179+
let mut pre = 0i32;
180+
for bracket in brackets.iter() {
181+
res += f64::from(income.min(bracket[0]) - pre) * f64::from(bracket[1]) * 0.01;
182+
if income <= bracket[0] {
183+
break;
184+
}
185+
pre = bracket[0];
186+
}
187+
res
188+
}
189+
}
190+
```
191+
173192
### **TypeScript**
174193

175194
```ts

‎solution/2300-2399/2303.Calculate Amount Paid in Taxes/README_EN.md‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,25 @@ func min(a, b int) int {
161161
}
162162
```
163163

164+
### **Rust**
165+
166+
```rust
167+
impl Solution {
168+
pub fn calculate_tax(brackets: Vec<Vec<i32>>, income: i32) -> f64 {
169+
let mut res = 0f64;
170+
let mut pre = 0i32;
171+
for bracket in brackets.iter() {
172+
res += f64::from(income.min(bracket[0]) - pre) * f64::from(bracket[1]) * 0.01;
173+
if income <= bracket[0] {
174+
break;
175+
}
176+
pre = bracket[0];
177+
}
178+
res
179+
}
180+
}
181+
```
182+
164183
### **TypeScript**
165184

166185
```ts
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
impl Solution {
2+
pub fn calculate_tax(brackets: Vec<Vec<i32>>, income: i32) -> f64 {
3+
let mut res = 0f64;
4+
let mut pre = 0i32;
5+
for bracket in brackets.iter() {
6+
res += f64::from(income.min(bracket[0]) - pre) * f64::from(bracket[1]) * 0.01;
7+
if income <= bracket[0] {
8+
break;
9+
}
10+
pre = bracket[0];
11+
}
12+
res
13+
}
14+
}

‎solution/2300-2399/2304.Minimum Path Cost in a Grid/README.md‎

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,34 @@ func min(a, b int) int {
190190
}
191191
```
192192

193+
### **Rust**
194+
195+
```rust
196+
impl Solution {
197+
pub fn min_path_cost(grid: Vec<Vec<i32>>, move_cost: Vec<Vec<i32>>) -> i32 {
198+
let (m, n) = (grid.len(), grid[0].len());
199+
let mut dp = vec![0; n];
200+
for i in 0..m - 1 {
201+
let mut counter = vec![i32::MAX; n];
202+
for j in 0..n {
203+
let val = grid[i][j];
204+
for k in 0..n {
205+
counter[k] = counter[k].min(val + move_cost[val as usize][k] + dp[j]);
206+
}
207+
}
208+
for j in 0..n {
209+
dp[j] = counter[j];
210+
}
211+
}
212+
let mut res = i32::MAX;
213+
for i in 0..n {
214+
res = res.min(dp[i] + grid[m - 1][i]);
215+
}
216+
res
217+
}
218+
}
219+
```
220+
193221
### **TypeScript**
194222

195223
```ts

‎solution/2300-2399/2304.Minimum Path Cost in a Grid/README_EN.md‎

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,34 @@ func min(a, b int) int {
176176
}
177177
```
178178

179+
### **Rust**
180+
181+
```rust
182+
impl Solution {
183+
pub fn min_path_cost(grid: Vec<Vec<i32>>, move_cost: Vec<Vec<i32>>) -> i32 {
184+
let (m, n) = (grid.len(), grid[0].len());
185+
let mut dp = vec![0; n];
186+
for i in 0..m - 1 {
187+
let mut counter = vec![i32::MAX; n];
188+
for j in 0..n {
189+
let val = grid[i][j];
190+
for k in 0..n {
191+
counter[k] = counter[k].min(val + move_cost[val as usize][k] + dp[j]);
192+
}
193+
}
194+
for j in 0..n {
195+
dp[j] = counter[j];
196+
}
197+
}
198+
let mut res = i32::MAX;
199+
for i in 0..n {
200+
res = res.min(dp[i] + grid[m - 1][i]);
201+
}
202+
res
203+
}
204+
}
205+
```
206+
179207
### **TypeScript**
180208

181209
```ts
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
impl Solution {
2+
pub fn min_path_cost(grid: Vec<Vec<i32>>, move_cost: Vec<Vec<i32>>) -> i32 {
3+
let (m, n) = (grid.len(), grid[0].len());
4+
let mut dp = vec![0; n];
5+
for i in 0..m - 1 {
6+
let mut counter = vec![i32::MAX; n];
7+
for j in 0..n {
8+
let val = grid[i][j];
9+
for k in 0..n {
10+
counter[k] = counter[k].min(val + move_cost[val as usize][k] + dp[j]);
11+
}
12+
}
13+
for j in 0..n {
14+
dp[j] = counter[j];
15+
}
16+
}
17+
let mut res = i32::MAX;
18+
for i in 0..n {
19+
res = res.min(dp[i] + grid[m - 1][i]);
20+
}
21+
res
22+
}
23+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /