每日进步之leetcode第16题C++实现代码(
2016-07-29 00:00
531 查看
class Solution {
public:
int threeSumClosest(vector<int>& nums, int target) {
sort(nums.begin(), nums.end());
int len = nums.size();
int closet = 1000000;
int flag = 0;
for(int i = 0; i < len; ++i)
{
int begin = i + 1;
int end = len -1;
while(begin < end)
{
int sum = nums[begin] + nums[end] + nums[i] - target;
if(sum == 0){
return target;
}else if (sum < 0)
{
++begin;
if(-sum < closet)
{
closet = -sum;
flag = 1;
}
}else
{
--end;
if(sum < closet)
{
closet = sum;
flag = 0;
}
}
}
}
if( flag == 1)
{
return -closet + target;
}else{
return closet + target;
}
}
};
public:
int threeSumClosest(vector<int>& nums, int target) {
sort(nums.begin(), nums.end());
int len = nums.size();
int closet = 1000000;
int flag = 0;
for(int i = 0; i < len; ++i)
{
int begin = i + 1;
int end = len -1;
while(begin < end)
{
int sum = nums[begin] + nums[end] + nums[i] - target;
if(sum == 0){
return target;
}else if (sum < 0)
{
++begin;
if(-sum < closet)
{
closet = -sum;
flag = 1;
}
}else
{
--end;
if(sum < closet)
{
closet = sum;
flag = 0;
}
}
}
}
if( flag == 1)
{
return -closet + target;
}else{
return closet + target;
}
}
};
相关文章推荐
- C++ STL vector 的内存管理
- 在C++中子类继承和调用父类的构造函数方法
- C++ 常量数据成员、静态数据成员、常量静态数据成员的初始化
- Some of the best Open Source Project's in VC++ & MFC
- 用C语言进行CGI程序设计
- 《Exceptional C++ Style》开放样章译稿
- 学习C++:实践者的方法(Beta1)
- C++之父元旦专访(8+13个问题,关于C++的学习&使用和未来)
- 《C++0x漫谈》系列
- 《C++0x漫谈》系列之:Auto的故事
- 关于谭浩强老先生的《C++程序设计教程》
- C++中的求值|副作用|序列点所导致的模糊语义
- 为什么C++(来自C++之父的观点)
- 《C++ Template Metaprogramming》译序——经典之后的经典
- 关于C++0x内存模型和序列点的一些思考
- 我的C++学习历程(old)
- C++0x展望[语言核心进化]
- 关于C++泛型编程的一些杂感
- 《C++0x漫谈》系列之:右值引用(或“move语意与完美转发”)(下)
- 《C++ Template Metaprogramming》第三章——深度探索元函数