leetcode--16. 3Sum Closest
来源:互联网 发布:乌鲁木齐 中亚 知乎 编辑:程序博客网 时间:2024/04/28 03:17
一、问题描述
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).二、思路分析
类似与之前的3sum问题:
先对S进行排序,建立三个索引 i, j, k;其中 i从0开始到size-2,j时刻比i大1,k从size-1开始,计算是sum = s[i]+s[j]+s[k],其中要消除重复,temp = sum -target;
循环i从0到size-2;
while循环直到j >= k;
每个循环有三种情况:
如果temp = 0, 则sum == target此时最近为target本身;
如果temp < 0, 则j++, 不断靠近;
如果temp > 0, 则k--,不断靠近;
三、代码
class Solution {public: int threeSumClosest(vector<int>& nums, int target) { int n = nums.size(); int res; int min = 520;//记录最近距离 int temp; for (int i = 0; i < n; i++) { for (int j = 0; j < n-i-1; j++) { if (nums[j] > nums[j+1]) { temp = nums[j]; nums[j] = nums[j+1]; nums[j+1] = temp; } } } int j = 0, k = 0; for (int i = 0; i < n-2; ++i) { if (i > 0&&nums[i] == nums[i-1]) { continue; } j = i+1; k = n-1; while(j < k) { int sum = nums[i]+nums[j]+nums[k]; int temp = sum-target; int tt = abs(temp); if (temp == 0) {return target; } else if(temp < 0) { if (min > tt) { min = tt; res = sum; } j++; } else { if (min > tt) { min = tt; res = sum; } k--; } } } return res; }};
阅读全文
0 0
- LeetCode 16. 3Sum Closest
- LeetCode --- 16. 3Sum Closest
- [Leetcode] 16. 3Sum Closest
- 【leetcode】16. 3Sum Closest
- [leetcode] 16. 3Sum Closest
- leetcode 16. 3Sum Closest
- leetcode 16. 3Sum Closest
- leetcode 16. 3Sum Closest
- LeetCode - 16. 3Sum Closest
- [LeetCode]16. 3Sum Closest
- LeetCode 16. 3Sum Closest
- LeetCode *** 16. 3Sum Closest
- Leetcode 16. 3Sum Closest
- leetcode 16. 3Sum Closest
- 【LeetCode】16. 3Sum Closest
- leetcode 16. 3Sum Closest
- 【leetcode】16. 3Sum Closest
- leetcode 16. 3Sum Closest
- unity代理委托的简单用法
- 数据结构入门---栈(下)
- 并发和并行的区别
- Scala算法
- 学不下去时坚持的方法
- leetcode--16. 3Sum Closest
- webpack3最新版本配置研究(三)webpack压缩,clean-webpack-plugin,webpack-manifest-plugin,define-plugin
- eclipse和idea的快捷键
- Sqoop导入关系数据库到Hive
- [HNOI2008]水平可见直线 半平面交
- Mybatis拦截器分页
- Spring框架的基本入门知识笔记(2)
- 深度学习踩坑
- 小专题---JavaScript之比较运算符