zoukankan      html  css  js  c++  java
  • LeetCode--3Sum

    类似于2sum,先排序,然后从左开始遍历,计算a[i]后面的等于-a[i]的两个元素,

    注意去除重复元素

     1 class Solution {
     2 public:
     3     vector<vector<int> > threeSum(vector<int> &num) {
     4         vector<vector<int> > res;
     5         sort(num.begin(),num.end());
     6         int n = num.size();
     7         for(int i = 0 ; i < n-2 ; ++i){
     8             if(i > 0 && (num[i] == num[i-1])){
     9                 continue;
    10             }
    11             int target = -num[i];
    12             int left = i+1;
    13             int right = n-1;
    14             while(left < right){
    15                 if(target == num[left] + num[right]){
    16                     vector<int> triplet;
    17                     triplet.push_back(num[i]);
    18                     triplet.push_back(num[left]);
    19                     triplet.push_back(num[right]);
    20                     res.push_back(triplet);
    21                     left++;
    22                     while((left < right) && (num[left] == num[left-1])){
    23                         left++;
    24                     }
    25                     right--;
    26                     while((right > left) && (num[right] == num[right+1])){
    27                         right--;
    28                     }
    29                 }
    30                 else if(target > num[left] + num[right]){
    31                     left++;
    32                     while((left < right) && (num[left] == num[left-1])){
    33                         left++;
    34                     }
    35                 }
    36                 else{
    37                     right--;
    38                     while((right > left) && (num[right] == num[right+1])){
    39                         right--;
    40                     }
    41                 }
    42             }
    43         }
    44         return res;
    45     }
    46 };
  • 相关阅读:
    自定义jdbc框架
    sql 批处理、获取自增长、事务、大文本处理
    数据库设计
    数据约束
    mysql操作之二
    mysql基本操作
    38. 外观数列
    合并两个有序链表
    有效的括号
    实现strStr
  • 原文地址:https://www.cnblogs.com/cane/p/3947052.html
Copyright © 2011-2022 走看看