Leetcode 刷题记录¶
- date
2021-03-10
借鉴了 iosmanthus/leetcode-rust 的做法,主要用 Rust 来刷题。
1 - Two Sum¶
我居然以为是 a+b 真是太蠢了。
花了一些时间来回忆 rust 的语法,工作后技术直觉好了很多,之前觉得不容易理解的地方 (指 rust)现在觉得非常直观了。
// ref: https://github.com/iosmanthus/leetcode-rust/blob/master/two-sum/src/lib.rs
use std::collections::HashMap;
pub struct Solution;
impl Solution {
pub fn two_sum(nums: Vec<i32>, target: i32) -> Vec<i32> {
let mut seen = HashMap::new();
for (i, num) in nums.iter().enumerate() {
if seen.contains_key(num) {
return vec![seen[num], i as i32];
} else {
seen.insert(target - num, i as i32);
}
}
panic!();
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn it_works() {
assert_eq!(vec![1, 3], Solution::two_sum(vec![9, 1, 2, 4, 3], 5));
assert_eq!(vec![0, 5], Solution::two_sum(vec![1, 4, 3, 4, 0, 5], 6));
}
}