Skip to content

Commit 0e491c1

Browse files
committed
12/7/2020
1 parent b015b95 commit 0e491c1

File tree

4 files changed

+66
-0
lines changed

4 files changed

+66
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ leetcode practise solution in rust
4343
|122|[Best Time to Buy and Sell Stock II](src/_0122_best_time_to_buy_and_sell_stock_ii.rs)|
4444
|125|[Valid Palindrome](src/_0125_valid_palindrome.rs)|
4545
|127|[Word Ladder](src/_0127_word_ladder.rs)|
46+
|135|[Candy](src/_0135_candy.rs)|
4647
|136|[Single Number](src/_0136_single_number.rs)|
4748
|151|[Reverse Words in a String](src/_0151_reverse_words_in_a_string.rs)|
4849
|155|[Min Stack](src/_0155_min_stack.rs)|

src/_0135_candy.rs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
struct Solution;
2+
3+
impl Solution {
4+
pub fn candy(ratings: Vec<i32>) -> i32 {
5+
let n = ratings.len();
6+
let mut left_right = vec![1; n];
7+
for i in 1..n {
8+
if ratings[i] > ratings[i - 1] {
9+
left_right[i] = left_right[i - 1] + 1;
10+
}
11+
}
12+
let mut right_left = vec![1; n];
13+
for i in (1..n).rev() {
14+
if ratings[i - 1] > ratings[i] {
15+
right_left[i - 1] = right_left[i] + 1;
16+
}
17+
}
18+
19+
let mut result = vec![0; n];
20+
for i in 0..n {
21+
result[i] = left_right[i].max(right_left[i]);
22+
}
23+
result.iter().sum()
24+
}
25+
}
26+
27+
fn test() {
28+
assert_eq!(Solution::candy(vec![1, 0, 2]), 5);
29+
assert_eq!(Solution::candy(vec![1, 2, 2]), 4);
30+
assert_eq!(Solution::candy(vec![1, 2, 87, 87, 87, 2, 1]), 13);
31+
}

src/_0859_buddy_strings.rs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
struct Solution;
2+
impl Solution {
3+
pub fn buddy_strings(a: String, b: String) -> bool {
4+
false
5+
}
6+
}
7+
8+
// #[test]
9+
// fn test() {
10+
// assert_eq!(
11+
// Solution::buddy_strings("ab".to_string(), "ba".to_string()),
12+
// true
13+
// );
14+
// assert_eq!(
15+
// Solution::buddy_strings("ab".to_string(), "ab".to_string()),
16+
// false
17+
// );
18+
// assert_eq!(
19+
// Solution::buddy_strings("aa".to_string(), "aa".to_string()),
20+
// true
21+
// );
22+
// assert_eq!(
23+
// Solution::buddy_strings("aaaaaaabc".to_string(), "aaaaaaacb".to_string()),
24+
// true
25+
// );
26+
// assert_eq!(
27+
// Solution::buddy_strings("".to_string(), "aa".to_string()),
28+
// false
29+
// );
30+
// }

src/lib.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ mod _0125_valid_palindrome;
8888
//
8989
mod _0127_word_ladder;
9090
//
91+
mod _0135_candy;
92+
//
9193
mod _0136_single_number;
9294
//
9395
mod _0151_reverse_words_in_a_string;
@@ -238,6 +240,8 @@ mod _0819_most_common_word;
238240
//
239241
mod _0844_backspace_string_compare;
240242
//
243+
mod _0859_buddy_strings;
244+
//
241245
mod _0875_koko_eating_bananas;
242246
//
243247
mod _0905_sort_array_by_parity;

0 commit comments

Comments
 (0)