1小时放弃Rust(2): 两数之和

1. 目的

陈越姥姥说,ACM拿奖的人有两类,一类是 NOIP 搞了好几年的,另一类是大学才开始搞 ACM 但是专注度远超常人的人。

学习 Rust 大概也是需要高度的专注度。让我试一下 ACM 的入门题目 A+B 吧!

2. 题目地址

https://leetcode.cn/problems/two-sum/

3. 创建工程

bash 复制代码
cd ~/play/rust
cargo new two-sum
cd two-sum
nvim src/main.rs

4. 抄写暴力求解的答案

学习的第一步就是抄写标准答案, 并且这个解法还应当是不费脑子的。 循序渐进才符合认知。

https://leetcode.cn/problems/two-sum/solutions/2326193/dong-hua-cong-liang-shu-zhi-he-zhong-wo-0yvmj/

rust 复制代码
struct Solution;

impl Solution
{
    pub fn two_sum(nums: Vec<i32>, target: i32) -> Vec<i32>
    {
        for i in 0..nums.len()
        {
            for j in j+1..nums.len()
            {
                if nums[i] + nums[j] == target
                {
                    return vec![i as i32, j as i32];
                }
            }
        }
        unreachable!()
    }
}

fn main()
{
    let nums = vec![2, 7, 11, 16];
    let target = 9;

    let result = Solution::two_sum(nums, target);

    println!("{:?}", result);
}

struct Solution 是在干啥

定义了一个空的结构体 Solution。

impl Solution 是在干事

为结构体 Solution 定义方法或关联函数。

vec! 是啥

vec! 是一个宏, 用来快速创建一个 Vec<T>

unreachable!() 是在干啥

unreachable!() 是一个宏,用于标记程序中不可能到达的代码路径。如果运行到了它, 会触发一个运行时错误,并终止错误。

对应的 C++ 代码

cpp 复制代码
class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        for (int i=0; i<nums.size(); i++)
        {
            for (int j=i+1; j<nums.size(); j++)
            {
                if (nums[i] + nums[j] == target)
                {
                    return {i, j};
                }
            }
        }
        return {};
    }
};

总结

好,不贪多,这次稍微接触练习了 rust 的 vec,用暴力方式做了 two-sum 的求解: 两重循环分别遍历数组。

相关推荐
本地化文档2 小时前
rustdoc-book-l10n
rust·github·gitcode
Tony Bai5 小时前
Rust 看了流泪,AI 看了沉默:扒开 Go 泛型最让你抓狂的“残疾”类型推断
开发语言·人工智能·后端·golang·rust
jump_jump6 小时前
RTK:给 AI 编码助手瘦身的 Rust 代理
性能优化·rust·claude
小杍随笔11 小时前
【Rust Exercism 练习详解:Anagram + Space Age + Sublist(附完整代码与深度解读)】
开发语言·rust·c#
Rust研习社13 小时前
Rust 字符串与切片实战
rust
朝阳58113 小时前
局域网聊天工具
javascript·rust
朝阳58113 小时前
我做了一个局域网传文件的小工具,记录一下
javascript·rust
Rust语言中文社区1 天前
【Rust日报】用 Rust 重写的 Turso 是一个更好的 SQLite 吗?
开发语言·数据库·后端·rust·sqlite
小杍随笔1 天前
【Rust 半小时速成(2024 Edition 更新版)】
开发语言·后端·rust
Source.Liu1 天前
【office2pdf】office2pdf 纯 Rust 实现的 Office 转 PDF 库
rust·pdf·office2pdf