【leetcode】two-sum
来源:互联网 发布:淘宝详情图片格式 编辑:程序博客网 时间:2024/06/06 16:56
该题目在编程之美上看过该题目,解题思路很清晰,先排序再从头和尾遍历一次,但写起来还是有很多问题:
1. 输出的下标为未排序的vector内元素的下标,因此排序过程中需要记录下标位置,我为了省事直接使用c++中sort函数,然后通过查找元素在原vector中位置得到下标;因此也引出了另一个问题,如果两个元素相同,得到相同的位置;
2. 要求两个下标位置从小到大;
//2014年8月22日19:17:30//2014年8月22日19:44:32#include <iostream>#include <vector>#include <algorithm>using namespace std;class Solution {public: vector<int> twoSum(vector<int> &numbers, int target) { vector<int> retVec; vector<int> num = numbers; sort(numbers.begin(),numbers.end()); int i = 0,j = numbers.size()-1; while(i != j){ if(numbers[i]+numbers[j] > target){ j--; continue; } if(numbers[i]+numbers[j] < target){ i++; continue; } if(numbers[i]+numbers[j] == target){ int smaller,bigger; smaller = find(num.begin(),num.end(),numbers[i])-num.begin(); if(numbers[i] != numbers[j]){ bigger = find(num.begin(),num.end(),numbers[j])-num.begin(); } else{ vector<int>::iterator it = find(num.begin(),num.end(),numbers[i]); bigger = find(it+1,num.end(),numbers[i])-num.begin(); } if(bigger < smaller){ retVec.push_back(bigger+1); retVec.push_back(smaller+1); } else{ retVec.push_back(smaller+1); retVec.push_back(bigger+1); } return retVec; } } return retVec; }};int main(){ int num[] = {5,75,25}; vector<int> numbers(num,num+3); int target = 100; Solution A; vector<int> result = A.twoSum(numbers,target); for(auto d:result){ cout << d << endl; } return 0;}
0 0
- 【Leetcode】Two Sum (Sum)
- LeetCode: Two Sum
- LeetCode: Two Sum
- [Leetcode] Two Sum
- LeetCode : Two Sum
- Leetcode: Two Sum
- leetcode 46: Two Sum
- [LeetCode] Two Sum
- LeetCode 1 - Two Sum
- Leetcode : Two Sum
- 【leetcode】Two Sum
- [LeetCode]Two Sum
- leetcode Two Sum
- [Leetcode] Two Sum
- [leetcode] Two Sum
- LeetCode - Two Sum
- leetcode之Two Sum
- LeetCode | Two Sum
- oil deposits
- Java异常处理(try、catch、finally使用)
- 一个自定义注释的例子
- linux用户栈和内核栈
- POJ 3036 Honeycomb Walk(DP)
- 【leetcode】two-sum
- Python要self的理由
- poj 2533 Longest Ordered Subsequence
- 使用Dom4j解析xml文件---DomReader方式
- 数据结构——顺序栈与链栈的C++实现
- 黑马程序员——Java泛型通配符的总结
- strcpy函数的实现
- UVA - 11292 Dragon of Loowater
- 计算机网络