Skip to content

Commit 48f4e17

Browse files
committed
6-25-2020
1 parent 9108bf4 commit 48f4e17

7 files changed

+123
-2
lines changed

src/_0066_plus_one.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
struct Solution;
2+
3+
impl Solution {
4+
pub fn plus_one(digits: Vec<i32>) -> Vec<i32> {
5+
let mut carry: i32 = 1;
6+
let mut sum: i32;
7+
let mut result: Vec<i32> = Vec::new();
8+
for v in digits.iter().rev() {
9+
sum = carry + v;
10+
carry = sum / 10;
11+
sum = sum % 10;
12+
result.insert(0, sum);
13+
}
14+
if carry != 0 {
15+
result.insert(0, carry);
16+
}
17+
result
18+
}
19+
}
20+
21+
#[test]
22+
fn test() {
23+
assert_eq!(Solution::plus_one(vec![1, 2, 3]), vec![1, 2, 4]);
24+
}

src/_0206_reverse_linked_list.rs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
struct Solution;
2+
use crate::util::*;
3+
4+
impl Solution {
5+
pub fn reverse_list(head: Option<Box<ListNode>>) -> Option<Box<ListNode>> {
6+
let mut p = head;
7+
let mut prev = None;
8+
while let Some(mut node) = p {
9+
p = node.next;
10+
node.next = prev;
11+
prev = Some(node);
12+
}
13+
prev
14+
}
15+
}
16+
17+
#[test]
18+
fn test() {
19+
assert_eq!(
20+
Solution::reverse_list(ListNode::list(vec![1, 2, 3, 4, 5])),
21+
ListNode::list(vec![5, 4, 3, 2, 1])
22+
);
23+
}

src/_0219_contains_duplicate_ii.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ impl Solution {
77
let k = k as usize;
88
for (i, v) in nums.into_iter().enumerate() {
99
if let Some(j) = map.get(&v) {
10-
if i - j < k {
10+
if i - j <= k {
1111
return true;
1212
}
1313
}

src/_0383_ransom_note.rs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
struct Solution;
2+
3+
impl Solution {
4+
pub fn can_construct(ransom_note: String, magazine: String) -> bool {
5+
let mut characters = vec![0 as i32; 26];
6+
for v in magazine.chars() {
7+
characters[(v as u8 - 'a' as u8) as usize] += 1;
8+
}
9+
for v in ransom_note.chars() {
10+
if characters[(v as u8 - 'a' as u8) as usize] == 0 {
11+
return false;
12+
}
13+
characters[(v as u8 - 'a' as u8) as usize] -= 1;
14+
}
15+
true
16+
}
17+
}
18+
19+
#[test]
20+
fn test() {
21+
assert_eq!(
22+
Solution::can_construct("a".to_string(), "b".to_string()),
23+
false
24+
);
25+
assert_eq!(
26+
Solution::can_construct("aa".to_string(), "ab".to_string()),
27+
false
28+
);
29+
assert_eq!(
30+
Solution::can_construct("aa".to_string(), "aab".to_string()),
31+
true
32+
);
33+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
struct Solution;
2+
3+
impl Solution {
4+
pub fn find_disappeared_numbers(nums: Vec<i32>) -> Vec<i32> {
5+
let mut nums = nums;
6+
for i in 0..nums.len() {
7+
let index: usize = nums[i].abs() as usize - 1;
8+
if nums[index] > 0 {
9+
nums[index] *= -1;
10+
}
11+
}
12+
let mut result = vec![];
13+
for (i, &v) in nums.iter().enumerate() {
14+
if v > 0 {
15+
result.push(i as i32 + 1);
16+
}
17+
}
18+
result
19+
}
20+
}
21+
22+
#[test]
23+
fn test() {
24+
assert_eq!(
25+
Solution::find_disappeared_numbers(vec![4, 3, 2, 7, 8, 2, 3, 1]),
26+
vec![5, 6]
27+
);
28+
}

src/_0605_can_place_flowers.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,8 @@ impl Solution {
2424
#[test]
2525
fn test() {
2626
assert_eq!(Solution::can_place_flowers(vec![1, 0, 0, 0, 1], 1), true);
27-
assert_eq!(Solution::can_place_flowers(vec![1, 0, 0, 0, 1], 2), true);
27+
assert_eq!(
28+
Solution::can_place_flowers(vec![1, 0, 0, 0, 0, 1], 2),
29+
false
30+
);
2831
}

src/lib.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ mod _0021_merge_two_sorted_lists;
2424
//
2525
mod _0053_maximum_subarray;
2626
//
27+
mod _0066_plus_one;
28+
//
2729
mod _0067_add_binary;
2830
//
2931
mod _0070_climbing_stairs;
@@ -38,14 +40,22 @@ mod _0202_happy_number;
3840
//
3941
mod _0204_count_primes;
4042
//
43+
mod _0219_contains_duplicate_ii;
44+
//
4145
mod _0266_palindrome_permutation;
4246
//
47+
mod _0383_ransom_note;
48+
//
4349
mod _0412_fizz_buzz;
4450
//
4551
mod _0415_add_strings;
4652
//
53+
mod _0448_find_all_numbers_disappeared_in_an_array;
54+
//
4755
mod _0557_reverse_words_in_a_string_iii;
4856
//
57+
mod _0605_can_place_flowers;
58+
//
4959
mod _0680_valid_palindrome_ii;
5060
//
5161
mod _0771_jewels_and_stones;

0 commit comments

Comments
 (0)