Skip to content

Commit c591169

Browse files
committed
feat: add solutions to lc problem: No.2598
1 parent cbd4edb commit c591169

File tree

4 files changed

+125
-0
lines changed

4 files changed

+125
-0
lines changed

solution/2500-2599/2598.Smallest Missing Non-negative Integer After Operations/README.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,51 @@ function findSmallestInteger(nums: number[], value: number): number {
167167
}
168168
```
169169

170+
#### Rust
171+
172+
```rust
173+
impl Solution {
174+
pub fn find_smallest_integer(nums: Vec<i32>, value: i32) -> i32 {
175+
let mut cnt = vec![0; value as usize];
176+
for &x in &nums {
177+
let idx = ((x % value + value) % value) as usize;
178+
cnt[idx] += 1;
179+
}
180+
181+
let mut i = 0;
182+
loop {
183+
let idx = (i % value) as usize;
184+
if cnt[idx] == 0 {
185+
return i;
186+
}
187+
cnt[idx] -= 1;
188+
i += 1;
189+
}
190+
}
191+
}
192+
```
193+
194+
#### JavaScript
195+
196+
```js
197+
/**
198+
* @param {number[]} nums
199+
* @param {number} value
200+
* @return {number}
201+
*/
202+
var findSmallestInteger = function (nums, value) {
203+
const cnt = Array(value).fill(0);
204+
for (const x of nums) {
205+
++cnt[((x % value) + value) % value];
206+
}
207+
for (let i = 0; ; ++i) {
208+
if (cnt[i % value]-- === 0) {
209+
return i;
210+
}
211+
}
212+
};
213+
```
214+
170215
<!-- tabs:end -->
171216

172217
<!-- solution:end -->

solution/2500-2599/2598.Smallest Missing Non-negative Integer After Operations/README_EN.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,51 @@ function findSmallestInteger(nums: number[], value: number): number {
167167
}
168168
```
169169

170+
#### Rust
171+
172+
```rust
173+
impl Solution {
174+
pub fn find_smallest_integer(nums: Vec<i32>, value: i32) -> i32 {
175+
let mut cnt = vec![0; value as usize];
176+
for &x in &nums {
177+
let idx = ((x % value + value) % value) as usize;
178+
cnt[idx] += 1;
179+
}
180+
181+
let mut i = 0;
182+
loop {
183+
let idx = (i % value) as usize;
184+
if cnt[idx] == 0 {
185+
return i;
186+
}
187+
cnt[idx] -= 1;
188+
i += 1;
189+
}
190+
}
191+
}
192+
```
193+
194+
#### JavaScript
195+
196+
```js
197+
/**
198+
* @param {number[]} nums
199+
* @param {number} value
200+
* @return {number}
201+
*/
202+
var findSmallestInteger = function (nums, value) {
203+
const cnt = Array(value).fill(0);
204+
for (const x of nums) {
205+
++cnt[((x % value) + value) % value];
206+
}
207+
for (let i = 0; ; ++i) {
208+
if (cnt[i % value]-- === 0) {
209+
return i;
210+
}
211+
}
212+
};
213+
```
214+
170215
<!-- tabs:end -->
171216

172217
<!-- solution:end -->
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/**
2+
* @param {number[]} nums
3+
* @param {number} value
4+
* @return {number}
5+
*/
6+
var findSmallestInteger = function (nums, value) {
7+
const cnt = Array(value).fill(0);
8+
for (const x of nums) {
9+
++cnt[((x % value) + value) % value];
10+
}
11+
for (let i = 0; ; ++i) {
12+
if (cnt[i % value]-- === 0) {
13+
return i;
14+
}
15+
}
16+
};
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
impl Solution {
2+
pub fn find_smallest_integer(nums: Vec<i32>, value: i32) -> i32 {
3+
let mut cnt = vec![0; value as usize];
4+
for &x in &nums {
5+
let idx = ((x % value + value) % value) as usize;
6+
cnt[idx] += 1;
7+
}
8+
9+
let mut i = 0;
10+
loop {
11+
let idx = (i % value) as usize;
12+
if cnt[idx] == 0 {
13+
return i;
14+
}
15+
cnt[idx] -= 1;
16+
i += 1;
17+
}
18+
}
19+
}

0 commit comments

Comments
 (0)