【刷题】LeetCode(一)

1. Two Sum

use std::collections::HashMap;

impl Solution{
    pub fn two_sum(nums: Vec<i32>, target:i32) -> Vec<i32>{
        let mut map = HashMap::new();
        for(i,v) in nums.into_iter().enumerate(){
            if let Some(&x) = map.get(&(target-v)){
                return vec![x, i as i32]
            }
            map.insert(v, i as i32);
        }
        vec![]
    }
}

2. Add Two Numbers

impl Solution {
    pub fn add_two_numbers(l1: Option<Box<ListNode>>, l2: Option<Box<ListNode>>) -> Option<Box<ListNode>> {
        add_two_numbers(l1,l2,0)
    }
}

pub fn add_two_numbers(l1 : Option<Box<ListNode>>, l2 : Option<Box<ListNode>>, mut carry : i32) -> Option<Box<ListNode>>{
    if l1.is_none() && l2.is_none() && carry == 0{
        return None;
    }else{
        Some(Box::new(ListNode{
            next : add_two_numbers(
                l1.and_then(|x| {carry += x.val; x.next}),
                l2.and_then(|x| {carry += x.val; x.next}),
                carry / 10
            ),
            val : carry % 10
        }))
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值