Rust LeetCode 3 Sum

Given an array S of n integers, are there elements abc in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.

Note:

  • Elements in a triplet (a,b,c) must be in non-descending order. (ie, a ≤ b ≤ c)
  • The solution set must not contain duplicate triplets.
    For example, given array S = {-1 0 1 2 -1 -4},

    A solution set is:
    (-1, 0, 1)
    (-1, -1, 2)

 

fn main() {
    println!("Hello, world!");
    let mut xs:[i32;6]=[0,1,-1,2,0,-2];
    let result = three1(xs);
    println!("{:?}",result);
}

fn three1(mut arr:[i32;6])->Vec<Vec<i32>>{
    let mut ret_vec:Vec<Vec<i32>> = Vec::new();
    arr.sort();
    let len=arr.len();
    let mut left=0;
    let mut right=0;
    let mut temp:i32=0;
    for i in 0..len {
      if i>0 && arr[i]==arr[i-1]{
          continue;
      }
      left = i+1;
      right = len -1;
      while left<right {
          temp=arr[i]+arr[left]+arr[right];
          println!("temp:{}",temp);
          if temp == 0 {
                let mut data_vec:Vec<i32> = Vec::new();
                let leftnum:i32 = arr[left];
                let rightnum:i32 = arr[right];
                data_vec.push(arr[i]);
                data_vec.push(leftnum);
                data_vec.push(rightnum);
                ret_vec.push(data_vec);
                if left<right && arr[left]==leftnum {left+=1};
                if left<right && arr[right]==rightnum{right-=1}
          }else if temp>0 {
              right -=1 ;
          }else{
              left +=1;
          }
      }
      println!("{}",arr[i]);
    }
    ret_vec
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值