提交 3087b0d4 编写于 作者: 梦境迷离's avatar 梦境迷离

fix an add

上级 c568f4c6
Leetcode Rust 实现
--
超简单的算法题目,主要为了熟悉rust语法。源码在Solution.rs,并包含测试
超简单的算法题目,主要为了熟悉rust语法。源码在Solution.rs,并包含部分测试(均AC,90%是双100)
不区分具体的LeetCode系列
......@@ -538,3 +538,39 @@ impl Solution {
}
}
```
* 和为零的N个唯一整数
```rust
impl Solution {
//双指针 平均分布,不同解决得到的结果不同
pub fn sum_zero(n: i32) -> Vec<i32> {
let mut ret = vec![0; n as usize];
let mut i = 0usize;
let mut j = (n - 1) as usize;
let mut c = 1;
loop {
if i >= j {
break;
}
ret[i] = c;
ret[j] = -c;
i += 1;
j -= 1;
c += 1;
}
ret
}
//[sum=1~n-2,-sum]
pub fn sum_zero2(n: i32) -> Vec<i32> {
let mut ret = vec![0; n as usize];
let mut sum = 0;
let mut j = 0;
for i in 0..=n - 2 {
ret[j] = i;
j += 1;
sum += i;
}
ret[(n - 1) as usize] = -sum;
ret
}
}
```
......@@ -764,6 +764,48 @@ fn leetcode_709() {
println!("{}", ret)
}
///和为零的N个唯一整数
fn leetcode_1304() {
println!("leetcode_1304");
impl Solution {
//双指针
pub fn sum_zero(n: i32) -> Vec<i32> {
let mut ret = vec![0; n as usize];
let mut i = 0usize;
let mut j = (n - 1) as usize;
let mut c = 1;
loop {
if i >= j {
break;
}
ret[i] = c;
ret[j] = -c;
i += 1;
j -= 1;
c += 1;
}
ret
}
pub fn sum_zero2(n: i32) -> Vec<i32> {
let mut ret = vec![0; n as usize];
let mut sum = 0;
let mut j = 0;
for i in 0..=n - 2 {
ret[j] = i;
j += 1;
sum += i;
}
ret[(n - 1) as usize] = -sum;
ret
}
}
let ret = Solution::sum_zero(10);
let ret2 = Solution::sum_zero2(5);
print_vec(ret);
print_vec(ret2);
}
///所有方法调用
pub fn solutions() {
interview_58_2();
......@@ -789,6 +831,7 @@ pub fn solutions() {
leetcode_617();
leetcode_461();
leetcode_709();
leetcode_1304();
}
fn print_vec(nums: Vec<i32>) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册