leetcode16 3Sum Closest
2015-10-24 11:17
543 查看
题意大概就给定一个数组,和一个整数,问那三个数的加和与给定的数最接近,感觉还没有上一题难,暴力破解.......
解法和上一题差不多,增加几个变量计算一下差值,遇到更小的就存一下.
#include "iostream"
#include "vector"
#include "algorithm"
#include "string"
using namespace std;
class Solution {
public:
int threeSumClosest(vector<int>& nums, int target) {
int len = nums.size();
int right,left;
sort(nums.begin(),nums.end());
int min = 99999999;
int result;
int temp;
if(len < 3)
return result;
for(int i = 0 ; i < nums.size()-2; i++)
//cout<<"("<<nums[i]<<")\n";
{
right = i+1;
left = nums.size()-1;
for(;right<left;)
{
temp = abs((nums[i]+nums[right]+nums[left])-target);
if(temp<min)
{
min = temp;
result = nums[i]+nums[right]+nums[left];
if(min == 0)
break;
}
if(nums[i]+nums[right]+nums[left] > target)
{
left--;
}
else
{
right++;
}
}
}
return result;
}
};
int main()
{
Solution test;
vector<int> num;
num.push_back(1);
num.push_back(1);
num.push_back(1);
num.push_back(0);
num.push_back(1);
int result;
int dig = 100;
result = test.threeSumClosest(num,dig);
cout<<result<<endl;
return 0;
}
解法和上一题差不多,增加几个变量计算一下差值,遇到更小的就存一下.
#include "iostream"
#include "vector"
#include "algorithm"
#include "string"
using namespace std;
class Solution {
public:
int threeSumClosest(vector<int>& nums, int target) {
int len = nums.size();
int right,left;
sort(nums.begin(),nums.end());
int min = 99999999;
int result;
int temp;
if(len < 3)
return result;
for(int i = 0 ; i < nums.size()-2; i++)
//cout<<"("<<nums[i]<<")\n";
{
right = i+1;
left = nums.size()-1;
for(;right<left;)
{
temp = abs((nums[i]+nums[right]+nums[left])-target);
if(temp<min)
{
min = temp;
result = nums[i]+nums[right]+nums[left];
if(min == 0)
break;
}
if(nums[i]+nums[right]+nums[left] > target)
{
left--;
}
else
{
right++;
}
}
}
return result;
}
};
int main()
{
Solution test;
vector<int> num;
num.push_back(1);
num.push_back(1);
num.push_back(1);
num.push_back(0);
num.push_back(1);
int result;
int dig = 100;
result = test.threeSumClosest(num,dig);
cout<<result<<endl;
return 0;
}
相关文章推荐
- Eclipse远程调试出现“JDWP Transport dt_socket failed to initialize”的解决方案
- 一款简洁登录页面
- 可视化编程项目总结
- hive中内部表和外部表
- SSM配置文件
- iOS开发——高级篇——iOS中常见的设计模式(MVC/单例/委托/观察者)
- 你真的知道你所熟悉的map吗?
- OpenCV之创建Mat函数的方法
- POJ 3207 Ikki's Story IV - Panda's Trick
- Han gm an Judge 模拟
- 课后作业加密
- ZOJ 1610 Count the Colors
- 消息队列机制
- 只在栈上和只在堆上申请对象
- learn ros] 环境搭建及源码下载
- JS跨域请求
- PHP之多进程
- JS跨域请求
- nyoj14 会场安排问题
- 杭电-2602Bone Collector