Skip to content

Commit da30dbf

Browse files
committed
feat: add rust solution to lc problem: No.2154
1 parent 6636372 commit da30dbf

File tree

3 files changed

+45
-2
lines changed

3 files changed

+45
-2
lines changed

solution/2100-2199/2154.Keep Multiplying Found Values by Two/README.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ tags:
4040
<pre>
4141
<strong>输入:</strong>nums = [5,3,6,1,12], original = 3
4242
<strong>输出:</strong>24
43-
<strong>解释:</strong>
43+
<strong>解释:</strong>
4444
- 3 能在 nums 中找到。3 * 2 = 6 。
4545
- 6 能在 nums 中找到。6 * 2 = 12 。
4646
- 12 能在 nums 中找到。12 * 2 = 24 。
@@ -152,6 +152,22 @@ function findFinalValue(nums: number[], original: number): number {
152152
}
153153
```
154154

155+
#### Rust
156+
157+
```rust
158+
impl Solution {
159+
pub fn find_final_value(nums: Vec<i32>, original: i32) -> i32 {
160+
use std::collections::HashSet;
161+
let s: HashSet<i32> = nums.into_iter().collect();
162+
let mut original = original;
163+
while s.contains(&original) {
164+
original <<= 1;
165+
}
166+
original
167+
}
168+
}
169+
```
170+
155171
<!-- tabs:end -->
156172

157173
<!-- solution:end -->

solution/2100-2199/2154.Keep Multiplying Found Values by Two/README_EN.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ tags:
3939
<pre>
4040
<strong>Input:</strong> nums = [5,3,6,1,12], original = 3
4141
<strong>Output:</strong> 24
42-
<strong>Explanation:</strong>
42+
<strong>Explanation:</strong>
4343
- 3 is found in nums. 3 is multiplied by 2 to obtain 6.
4444
- 6 is found in nums. 6 is multiplied by 2 to obtain 12.
4545
- 12 is found in nums. 12 is multiplied by 2 to obtain 24.
@@ -150,6 +150,22 @@ function findFinalValue(nums: number[], original: number): number {
150150
}
151151
```
152152

153+
#### Rust
154+
155+
```rust
156+
impl Solution {
157+
pub fn find_final_value(nums: Vec<i32>, original: i32) -> i32 {
158+
use std::collections::HashSet;
159+
let s: HashSet<i32> = nums.into_iter().collect();
160+
let mut original = original;
161+
while s.contains(&original) {
162+
original <<= 1;
163+
}
164+
original
165+
}
166+
}
167+
```
168+
153169
<!-- tabs:end -->
154170

155171
<!-- solution:end -->
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
impl Solution {
2+
pub fn find_final_value(nums: Vec<i32>, original: i32) -> i32 {
3+
use std::collections::HashSet;
4+
let s: HashSet<i32> = nums.into_iter().collect();
5+
let mut original = original;
6+
while s.contains(&original) {
7+
original <<= 1;
8+
}
9+
original
10+
}
11+
}

0 commit comments

Comments
 (0)