每日进步之leetcode第1题C++实现代码
2016-07-28 23:30
627 查看
主要问题在于原始序号问题
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
int len = nums.size();
vector<int> tmpvec(len,0);
for (int i = 0; i< len; ++i){
tmpvec[i] = i;
}
for(int i = 0; i < len-1; ++i)
{
for(int j = 0; j < len-i-1; ++j)
{
if(nums[j] > nums[j+1]){
swap(nums[j], nums[j+1]);
swap(tmpvec[j], tmpvec[j+1]);
}
}
}
int begin = 0;
int end = nums.size()-1;
vector<int> ver;
while(begin < end)
{
int sum = nums[begin] + nums[end];
if(sum == target){
ver.push_back(tmpvec[begin]);
ver.push_back(tmpvec[end]);
break;
}else if ( sum > target){
--end;
}else{
++begin;
}
}
return ver;
}
};
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
int len = nums.size();
vector<int> tmpvec(len,0);
for (int i = 0; i< len; ++i){
tmpvec[i] = i;
}
for(int i = 0; i < len-1; ++i)
{
for(int j = 0; j < len-i-1; ++j)
{
if(nums[j] > nums[j+1]){
swap(nums[j], nums[j+1]);
swap(tmpvec[j], tmpvec[j+1]);
}
}
}
int begin = 0;
int end = nums.size()-1;
vector<int> ver;
while(begin < end)
{
int sum = nums[begin] + nums[end];
if(sum == target){
ver.push_back(tmpvec[begin]);
ver.push_back(tmpvec[end]);
break;
}else if ( sum > target){
--end;
}else{
++begin;
}
}
return ver;
}
};
相关文章推荐
- C语言编写CAPLdll
- C++实现动态数组
- C++类成员函数作为线程回调函数
- C++ 类的静态成员详细讲解
- 每日进步之leetcode15题C++实现代码
- 苹果和虫子2
- C语言中的数据类型
- 有趣的C语言--函数声明和形参问题
- Leetcode 40. Combination Sum II (Medium) (cpp)
- 线程特定数据
- 有趣的C语言--文件结尾和重定向
- Leetcode 39. Combination Sum (Medium) (cpp)
- 一起talk C栗子吧(第一百七十九回:C语言实例--字符和字符串输出函数二)
- 顺序统计量
- C++外部文件读取相关操作
- 大数阶乘
- C++11系列-改进的类型推导:auto、decltype和新的函数语法
- ffmepg音频重采样
- 排序算法
- Binary Tree Maximum Path Sum