type
status
date
slug
summary
tags
category
icon
password
这两天学习了 rust 的语法
尝试使用 rust 来写今天的 leetcode 的每日一题
给你一个整数数组
nums
。一个子数组 [nums
l
, nums
l+1
, ..., nums
r-1
, nums
r
]
的 和的绝对值 为 abs(nums
l
+ nums
l+1
+ ... + nums
r-1
+ nums
r
)
。请你找出
nums
中 和的绝对值 最大的任意子数组(可能为空),并返回该 最大值 。边查文档边写的代码:
编译错误提示
- 忘记写 ;
- 获取数组长度 len 写成 length
- 未定义的结构体
- 最后的返回没有分号
- 计算最大绝对值函数的所有权
- 所有权只读
修改的结果
总结
参看其他人写的代码
- 直接使用 for i in 0..n 要比 nums.iter().enumerate() 要好一些
- 数值型函数本身有 max min abs 函数,不需要自己写.
- 计算时由于过程已经保存 dp 的结果也不用保存,只需要保存上一次的结果给下一次循环用即可.
- rust 的语法确实很难描述,需要大量的实践,特别是开始写的时候变量的传递有些懵.
最终版本: