标签:下标 span default 技术 题记 测试 count func 利用
1 class Solution { 2 public: 3 vector<int> twoSum(vector<int>& nums, int target) { 4 int start=0; 5 int next=1; 6 vector<int> results; 7 while(start<nums.size()){ 8 if(nums.at(start)>target){ 9 start++; 10 } 11 else{ 12 int submit=target-nums.at(start); 13 while(next<(nums.size()-start)){ 14 if(nums.at(start+next)!=submit){ 15 next++; 16 } 17 else{ 18 results.push_back(start); 19 results.push_back(start+next); 20 return results; 21 } 22 } 23 } 24 } 25 return results; 26 } 27 };
在得到最后的结果前遇到两个编译错误:Reference to non-static member function be called和control may reach end of non-void function。
第一个检查一下调用的类的函数名有没有写正确,我把nums.size()写成nums.size。所以编译出错。
第二个是跟返回类型不匹配相关的。
代码提交之后只通过了一个测试案例,检查之后在23行新增 start++;再次提交通过23个案例!
class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> results; int start=0; while(start<nums.size()){ for(int next=1;next<(nums.size()-start);next++){ if(nums.at(start)+nums.at(start+next)==target){ results.push_back(start); results.push_back(start+next); return results; } } start++; } return results; } };
结果的耗时太长!!!
class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> results; map<int,int> mymap; for(int i=0;i<nums.size();i++){ mymap[nums[i]]=i; } for(int i=0;i<nums.size();i++){ int submit=target-nums.at(i); if(mymap.count(submit)&&mymap[submit]!=i){ results.push_back(i); results.push_back(mymap[submit]); return results; } } return results; } };
使用map类之后:
标签:下标 span default 技术 题记 测试 count func 利用
原文地址:https://www.cnblogs.com/gangyin/p/12579804.html