Leetcode习题记录——3Sum Closest
来源:互联网 发布:淘宝店铺优惠券在哪 编辑:程序博客网 时间:2024/06/06 01:27
题目: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.
第一种方法:采用最简单的思路,做两次循环,并使用两个指针
class Solution {public: int threeSumClosest(vector<int>& nums, int target) { int closest = nums[0] + nums[1] + nums[2]; int diff = abs(closest - target); sort(nums.begin() , nums.end()); for (int i = 0 ; i < nums.size() - 2; i++){ int left = i + 1 ; int right = nums.size() - 1 ; while (left < right){ int sum = nums[i] + nums[left] + nums[right]; int new_diff = abs(sum - target); if(new_diff < diff){ diff = new_diff; closest = sum; } if (sum > target) right--; else left++; } } return closest; }};
我一直在思考有没有更加简单的方法,但一直没有收获;
class Solution {public: int threeSumClosest(vector<int>& nums, int target) { int closest = nums[0] + nums[1] + nums[2]; int diff = abs(closest - target); sort(nums.begin() , nums.end()); for (int i = 0 ; i < nums.size() - 2; i++){ int left = i + 1 ; int right = nums.size() - 1 ; while (left < right){ int sum = nums[i] + nums[left] + nums[right]; int new_diff = abs(sum - target); if(new_diff == 0) return target;//判断为零,即得到接近的值 if(new_diff < diff){ diff = new_diff; closest = sum; } if (sum > target) right--; else left++; } } return closest; }};
但我通过加了一句判断语句,就使程序运行时间从19ms减少到6ms
阅读全文
0 0
- Leetcode习题记录——3Sum Closest
- leetcode习题解答:16. 3Sum Closest
- Leetcode习题记录——Two Sum
- 个人记录-LeetCode 16. 3Sum Closest
- LeetCode——3Sum Closest
- LeetCode——3Sum Closest
- leetcode 016 —— 3Sum Closest
- LeetCode题解——3Sum Closest
- LeetCode——16. 3Sum Closest
- Leetcode——16. 3Sum Closest
- LeetCode——3Sum & 3Sum Closest
- 【LeetCode】LeetCode——第16题:3Sum Closest
- LeetCode: 3 Sum Closest
- leetcode - 3 sum closest
- leetcode 3Sum Closest
- LeetCode: 3Sum Closest
- [Leetcode]3Sum Closest
- Leetcode: 3SUM Closest
- 回车与换行的区别
- mac和linux下使用Docker,部署SpringBoot项目到docker
- 好的框架设计的文章
- java之mysql数据库连接
- 李洋疯狂C语言之break和continue的区别
- Leetcode习题记录——3Sum Closest
- static
- scrapy-redis配置
- 编写一个增加开发效率的BaseRecyclerAdapter,持续中...
- 教你如何成为优秀的DevOps工程师
- JVM内存管理,虚拟机堆栈的理解
- 理解Spring Boot中的auto-configuration
- pitch yaw roll
- POJ