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

    Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input would have exactly one solution.

    For example, given array S = {-1 2 1 -4}, and target = 1.

    The sum that is closest to the target is 2. (-1 + 2 + 1 = 2).

    先对数组排个序。枚举第一个数,然后设两个指针,在第一个数的后半段开始王中间收缩,if sum > target则右指针往左移, if sum < target则左指针往右移。

    排序O(nlogn) + 查找O(n^2) = O(n^2)

     1 class Solution {
     2 public:
     3     int threeSumClosest(vector<int> &num, int target) {
     4         // Start typing your C/C++ solution below
     5         // DO NOT write int main() function
     6         sort(num.begin(), num.end());
     7         
     8         int ret;
     9         bool first = true;
    10         
    11         for(int i = 0; i < num.size(); i++)
    12         {
    13             int j = i + 1;
    14             int k = num.size() - 1;
    15             
    16             while(j < k)
    17             {
    18                 int sum = num[i] + num[j] + num[k];
    19                 if (first)
    20                 {
    21                     ret = sum;
    22                     first = false;
    23                 }
    24                 else
    25                 {
    26                     if (abs(sum - target) < abs(ret - target))
    27                         ret = sum;                                         
    28                 }
    29                 
    30                 if (ret == target)
    31                     return ret;
    32                 
    33                 if (sum > target)
    34                     k--;
    35                 else
    36                     j++;
    37             }
    38         }
    39         
    40         return ret;
    41     }
    42 };
  • 相关阅读:
    Git常用操作命令
    百度地图集成--二
    百度地图的集成--超详细
    iOS开发系列--地图与定位
    整理了一份React-Native学习指南(转)
    iOS高级编程之JSON,XML数据解析
    iOS开发基础
    C#001
    C#00
    英语学习tips
  • 原文地址:https://www.cnblogs.com/chkkch/p/2742667.html
Copyright © 2011-2022 走看看