leetcode之三数之和 II
2016-04-20 23:34
477 查看
题目:
给一个包含n个整数的数组S,
找到和与给定整数target最接近的三元组,返回这三个数的和
解答:
two pinters实现,很简单
class Solution {
public:
/**
* @param numbers: Give an array numbers of n integer
* @param target: An integer
* @return: return the sum of the three integers, the sum closest target.
*/
int threeSumClosest(vector<int> nums, int target) {
// write your code here
int size = nums.size();
sort(nums.begin(), nums.end());
int res = nums[0] + nums[1] + nums[2];
for (int i = 0; i < size - 2; ++i) {
int start = i + 1;
int end = size - 1;
while (start < end) {
if (nums[i] + nums[start] + nums[end] < target) {
if (abs(nums[i] + nums[start] + nums[end] - target) < abs(res - target)) {
res = nums[i] + nums[start] + nums[end];
}
start++;
} else {
if (abs(nums[i] + nums[start] + nums[end] - target) < abs(res - target)) {
res = nums[i] + nums[start] + nums[end];
}
end--;
}
}
}
return res;
}
};
给一个包含n个整数的数组S,
找到和与给定整数target最接近的三元组,返回这三个数的和
解答:
two pinters实现,很简单
class Solution {
public:
/**
* @param numbers: Give an array numbers of n integer
* @param target: An integer
* @return: return the sum of the three integers, the sum closest target.
*/
int threeSumClosest(vector<int> nums, int target) {
// write your code here
int size = nums.size();
sort(nums.begin(), nums.end());
int res = nums[0] + nums[1] + nums[2];
for (int i = 0; i < size - 2; ++i) {
int start = i + 1;
int end = size - 1;
while (start < end) {
if (nums[i] + nums[start] + nums[end] < target) {
if (abs(nums[i] + nums[start] + nums[end] - target) < abs(res - target)) {
res = nums[i] + nums[start] + nums[end];
}
start++;
} else {
if (abs(nums[i] + nums[start] + nums[end] - target) < abs(res - target)) {
res = nums[i] + nums[start] + nums[end];
}
end--;
}
}
}
return res;
}
};
相关文章推荐
- 只有程序员看的懂的面试圣经|如何拿下编程面试
- 下一次技术面试时要问的 3 个重要问题
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- PHP程序员面试 切忌急功近利(更需要注重以后的发展)
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法
- 基于C++实现的各种内部排序算法汇总