【Leetcode】之3Sum Closest
2015-11-03 09:18
309 查看
一.问题描述
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).
二.我的解题思路
这道题和上一道题几乎完全一样,这道题还更简单一些,因为只需要返回sum值而不需要返回具体的三个数。沿用上一题的排序+双指针的思路,测试通过的程序如下:class Solution { public: int threeSumClosest(vector<int>& nums, int target) { sort(nums.begin(),nums.end()); int len=nums.size(); int tmp_min=100000; int res; for(int i=0;i<len;i++) { if(i>0&&nums[i]==nums[i-1]) continue; int st=i+1;int end=len-1; while(st<end) { int curr_value=nums[i]+nums[st]+nums[end]; int curr_dist=abs(curr_value-target); if(curr_dist<tmp_min) { tmp_min=curr_dist; res=curr_value; } if(curr_value>target) end--; if(curr_value<target) st++; if(curr_value==target) return target; } } return res; } };
相关文章推荐
- Oracle GoldenGate的思想天空--感悟OGG的本质
- android:关于serializable
- php生成多条sql记录
- 练习!!!累加求和
- 【应用组件:EventBus】实例演示
- 九种基本数据类型
- 玩转Visual Studio-管理多种释出版本
- java检测某个类所在的包名路径
- 关于Matlab中avi视频的读取问题
- 农村深化改革方案公布 宅基地制度改革思路确定
- 【应用组件:EventBus】开篇
- BCB中使TPanel透明
- EasyCodeScanner(Zbar)遇到libzbar.a问题(遇到arm类似问题)
- MySQL
- LeetCode70——Climbing Stairs
- MySQL性能优化的最佳21条经验
- java SE复习笔记61
- Win8无线网络受限或无线网络无法连接怎么办 Win8无线网络受限或无连接的五种解决方法
- JUnit-4.11使用报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing错误
- iOS中大流中的自定义cell 技术分享