zoukankan      html  css  js  c++  java
  • leetcode 15. 三数之和

    给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。

    注意:答案中不可以包含重复的三元组。

    例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],
    
    满足要求的三元组集合为:
    [
      [-1, 0, 1],
      [-1, -1, 2]
    ]


     1 #include<algorithm>
     2 class Solution {
     3 public:
     4     vector<vector<int>> threeSum(vector<int>& nums) {
     5         vector<vector<int>> ans;
     6         sort(nums.begin(), nums.end());
     7         int len = nums.size();
     8         for (int i = 0; i < len - 2;){
     9             int k = len - 1;
    10             for (int j = i + 1; j < k;){
    11                 if(nums[j]+nums[k] == -nums[i]){
    12                     vector<int> temp;
    13                     temp.push_back(nums[i]);
    14                     temp.push_back(nums[j]);
    15                     temp.push_back(nums[k]);
    16                     ans.push_back(temp);
    17                     j++;
    18                     k--;
    19                     while(j < k && nums[j] == nums[j-1]) j++;
    20                     while(j < k && nums[k] == nums[k+1]) k--;
    21                 }else if(nums[j]+nums[k] > -nums[i]){
    22                     k--;
    23                     while(j < k && nums[k] == nums[k+1]) k--;
    24                 } else if(nums[j]+nums[k] < -nums[i]){
    25                     j++;
    26                     while(j < k && nums[j] == nums[j-1]) j++;
    27                 }
    28             }
    29             i++;
    30             while(i < len-2 && nums[i] == nums[i-1]) i++;
    31         }
    32         return ans;
    33     }
    34 };
    有疑惑或者更好的解决方法的朋友,可以联系我,大家一起探讨。qq:1546431565
  • 相关阅读:
    初识ambari
    MySQL Split 函数
    行存储和列存储
    Hbase安装和错误
    mysql 常用自定义函数解析
    mysq l错误Table ‘./mysql/proc’ is marked as crashed and should be repaired
    MySql提示:The server quit without updating PID file(…)失败
    mysql 自定义函数
    hive 调优总结
    [css] line boxes
  • 原文地址:https://www.cnblogs.com/mr-stn/p/8951410.html
Copyright © 2011-2022 走看看