zoukankan      html  css  js  c++  java
  • 18. 4Sum

    方针:

    1. sort数组
    2. 固定前三个(i1,i2,i3初始化,逐次偏移+1),从后往前移动最后一个(i4)。
    3. 判断4数之和==target break;

    问题:

    1. 数组含有重复数字

      解决:if(ix==ix-1) then continue;

    2.优化:执行时间长

      解决:

        过滤1,if(i1+..+ix 和其之后的连续n-x个数之和>target) then break;

        过滤2,if(i1+..+ix 和最后n-x个数之和<target) then continue(使得ix++,来增大ix);

     1 class Solution {
     2 public:
     3     static bool sortfun(const int a, const int b){
     4         return a<b;
     5     }
     6     vector<vector<int>> fourSum(vector<int>& nums, int target) {
     7         int i1,i2,i3,i4,n=nums.size();
     8         vector<vector<int>> res={};
     9         if(n<4) return res;
    10         sort(nums.begin(), nums.end(), sortfun);
    11         for(i1=0; i1<n-3; i1++){
    12             if(i1>0 && nums[i1] == nums[i1-1]) continue;
    13             if(nums[i1]+nums[i1+1]+nums[i1+2]+nums[i1+3]>target) break;
    14             if(nums[i1]+nums[n-3]+nums[n-2]+nums[n-1]<target) continue;
    15             for(i2=i1+1; i2<n-2; i2++){
    16                 if(i2>i1+1 && nums[i2] == nums[i2-1]) continue;
    17                 if(nums[i1]+nums[i2]+nums[i2+1]+nums[i2+2]>target) break;
    18                 if(nums[i1]+nums[i2]+nums[n-2]+nums[n-1]<target) continue;
    19                 for(i3=i2+1; i3<n-1; i3++){
    20                     if(i3>i2+1 && nums[i3] == nums[i3-1]) continue;
    21                     if(nums[i1]+nums[i2]+nums[i3]+nums[i3+1]>target) break;
    22                     if(nums[i1]+nums[i2]+nums[i3]+nums[n-1]<target) continue;
    23                     for(i4=n-1; i4>i3; i4--){
    24                         if(nums[i1]+nums[i2]+nums[i3]+nums[i4]==target){
    25                             res.push_back({nums[i1],nums[i2],nums[i3],nums[i4]});
    26                             break;
    27                         }
    28                     }
    29                 }
    30             }
    31         }
    32         return res;
    33     }
    34 };
  • 相关阅读:
    用jQuery实现的简单柱状统计图
    转:Mac下配置eclipse的pydev
    准备做些东西
    UIImageJPEGRepresentation 和 UIImagePNGRepresentation
    UITableView,UITableViewCell,UIPickerView,UISearchBar
    UITableViewCell的显示格式
    js 数据类型检测
    data-xxx 属性的作用是什么
    TCP连接篇
    DNS篇
  • 原文地址:https://www.cnblogs.com/habibah-chang/p/12302794.html
Copyright © 2011-2022 走看看