Skip to content

Commit 0eb1dcd

Browse files
committed
8-19-2020
1 parent 0c7dd32 commit 0eb1dcd

File tree

3 files changed

+68
-0
lines changed

3 files changed

+68
-0
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
struct Solution;
2+
3+
impl Solution {
4+
pub fn find_kth_largest(mut nums: Vec<i32>, k: i32) -> i32 {
5+
let mut l: usize = 0;
6+
let mut r: usize = nums.len() - 1;
7+
let k: usize = nums.len() - k as usize;
8+
while l < r {
9+
let pivot: usize = Self::partition(&mut nums, l, r);
10+
// println!("{},{},{}",l,r,pivot);
11+
if pivot == k {
12+
break;
13+
} else if pivot < k {
14+
l = pivot + 1;
15+
} else {
16+
r = pivot - 1
17+
}
18+
}
19+
nums[k]
20+
}
21+
22+
fn partition(nums: &mut Vec<i32>, l: usize, r: usize) -> usize {
23+
nums.swap((l + r) / 2, r);
24+
let mut j = l;
25+
let pivot_value = nums[r];
26+
for i in l..r {
27+
if nums[i] <= pivot_value {
28+
nums.swap(i, j);
29+
j += 1;
30+
}
31+
}
32+
nums.swap(j, r);
33+
j
34+
}
35+
}
36+
37+
#[test]
38+
fn test() {
39+
assert_eq!(Solution::find_kth_largest(vec![3, 2, 1, 5, 6, 4], 2), 5);
40+
assert_eq!(
41+
Solution::find_kth_largest(vec![3, 2, 3, 1, 2, 4, 5, 5, 6], 4),
42+
4
43+
);
44+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// struct Solution;
2+
3+
// impl Solution {
4+
// pub fn k_closest(mut points: Vec<Vec<i32>>, k: i32) -> Vec<Vec<i32>> {
5+
// // sort according to v[0]^2 * v[1]^2
6+
// vec![]
7+
// }
8+
// }
9+
10+
// #[test]
11+
// fn test() {
12+
// assert_eq!(
13+
// Solution::k_closest(vec_vec_i32![[1, 3], [-2, 2]], 1),
14+
// vec_vec_i32![[-2, 2]]
15+
// );
16+
// assert_eq!(
17+
// Solution::k_closest(vec_vec_i32![[3, 3], [5, -1], [-2, 4]], 2),
18+
// vec_vec_i32![[3, 3], [-2, 4]]
19+
// );
20+
// }

src/lib.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ mod _0206_reverse_linked_list;
9696
//
9797
mod _0210_course_schedule_ii;
9898
//
99+
mod _0215_kth_largest_element_in_an_array;
100+
//
99101
mod _0219_contains_duplicate_ii;
100102
//
101103
mod _0234_palindrome_linked_list;
@@ -198,6 +200,8 @@ mod _0938_range_sum_of_bst;
198200
//
199201
mod _0953_verifying_an_alien_dictionary;
200202
//
203+
mod _0973_k_closest_points_to_origin;
204+
//
201205
mod _0977_squares_of_a_sorted_array;
202206
//
203207
mod _0994_rotting_oranges;

0 commit comments

Comments
 (0)