Skip to content

Commit d744fee

Browse files
committed
feat: add rust solution to lc problem: No.2006
No.2006.Count Number of Pairs With Absolute Difference K
1 parent cd1b9e5 commit d744fee

File tree

3 files changed

+92
-0
lines changed

3 files changed

+92
-0
lines changed

solution/2000-2099/2006.Count Number of Pairs With Absolute Difference K/README.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,44 @@ func countKDifference(nums []int, k int) int {
220220
}
221221
```
222222

223+
### **Rust**
224+
225+
```rust
226+
impl Solution {
227+
pub fn count_k_difference(nums: Vec<i32>, k: i32) -> i32 {
228+
let mut res = 0;
229+
let n = nums.len();
230+
for i in 0..n - 1 {
231+
for j in i..n {
232+
if (nums[i] - nums[j]).abs() == k {
233+
res += 1;
234+
}
235+
}
236+
}
237+
res
238+
}
239+
}
240+
```
241+
242+
```rust
243+
impl Solution {
244+
pub fn count_k_difference(nums: Vec<i32>, k: i32) -> i32 {
245+
let mut arr = [0; 101];
246+
let mut res = 0;
247+
for num in nums {
248+
if num - k >= 1 {
249+
res += arr[(num - k) as usize];
250+
}
251+
if num + k <= 100 {
252+
res += arr[(num + k) as usize]
253+
}
254+
arr[num as usize] += 1;
255+
}
256+
res
257+
}
258+
}
259+
```
260+
223261
### **...**
224262

225263
```

solution/2000-2099/2006.Count Number of Pairs With Absolute Difference K/README_EN.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,44 @@ func countKDifference(nums []int, k int) int {
207207
}
208208
```
209209

210+
### **Rust**
211+
212+
```rust
213+
impl Solution {
214+
pub fn count_k_difference(nums: Vec<i32>, k: i32) -> i32 {
215+
let mut res = 0;
216+
let n = nums.len();
217+
for i in 0..n - 1 {
218+
for j in i..n {
219+
if (nums[i] - nums[j]).abs() == k {
220+
res += 1;
221+
}
222+
}
223+
}
224+
res
225+
}
226+
}
227+
```
228+
229+
```rust
230+
impl Solution {
231+
pub fn count_k_difference(nums: Vec<i32>, k: i32) -> i32 {
232+
let mut arr = [0; 101];
233+
let mut res = 0;
234+
for num in nums {
235+
if num - k >= 1 {
236+
res += arr[(num - k) as usize];
237+
}
238+
if num + k <= 100 {
239+
res += arr[(num + k) as usize]
240+
}
241+
arr[num as usize] += 1;
242+
}
243+
res
244+
}
245+
}
246+
```
247+
210248
### **...**
211249

212250
```
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
impl Solution {
2+
pub fn count_k_difference(nums: Vec<i32>, k: i32) -> i32 {
3+
let mut arr = [0; 101];
4+
let mut res = 0;
5+
for num in nums {
6+
if num - k >= 1 {
7+
res += arr[(num - k) as usize];
8+
}
9+
if num + k <= 100 {
10+
res += arr[(num + k) as usize]
11+
}
12+
arr[num as usize] += 1;
13+
}
14+
res
15+
}
16+
}

0 commit comments

Comments
 (0)