本文共 1807 字,大约阅读时间需要 6 分钟。
这是整个调试, for (int i:s) cout<<i<<endl;这句话是c++11特性下的一种遍历方式
在编译的时候需要加-std=c++11,即g++ 41.cpp -std=c++11
如果不加就会报错,因为这是c++11的特性
#include #include using namespace std;class Solution {public: vector FindNumbersWithSum(vector array,int sum) { vector result; if(array.size() <= 0) return result; //cout< <
::iterator first = array.begin(); vector
::iterator last = array.end() - 1; cout<<*last<
2){ cout<<'2'< Findsmall(vector
array){ int length = array.size(); int pair = length/2; vector
result(2,0); int product = 999999; for(int i = 0;i < pair;i++){ int num = array[2*i]*array[2*i+1]; if(num < product){ result[0] = array[2*i]; result[1] = array[2*i+1]; product = num; } } return result; }};int main(){ Solution a; int b[] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; vector
base(b,b+20); vector
s = a.FindNumbersWithSum(base,21); for (int i:s) cout<
< class Solution {public: vector FindNumbersWithSum(vector array,int sum) { vector result; int length = array.size(); if(length <= 0) return result; int start = 0; int end = length - 1; int num = array[start] + array[end]; while(start <= end){ if(num == sum){ result.push_back(array[start]); result.push_back(array[end]); break; } else if(num < sum){ start++; num = array[start] + array[end]; } else{ end--; num = array[start] + array[end]; } } return result; }};