结论:下标访问效率更高。
迭代器访问:
用时:超过1600ms
class Solution { public: vector<int> fairCandySwap(vector<int>& A, vector<int>& B) { int sumA=0; for(int i=0;i<A.size();i++) { sumA+=A[i]; } int sumB=0; for(int i=0;i<B.size();i++) { sumB+=B[i]; } int diff=sumA-sumB; //cout<<"diff="<<diff<<endl; vector<int> ret; bool isSwap=false; for(int a=0;a<A.size();a++) { for(int b=0;b<B.size();b++) {//cout<<"a-b="<<*itera-*iterb<<endl; if(diff==2*(A[a]-B[b])) { ret.push_back(A[a]); ret.push_back(B[b]); isSwap=true; break; } } if(isSwap==true) break; } return ret; } };
class Solution { public: vector<int> fairCandySwap(vector<int>& A, vector<int>& B) { int sumA=0; for(int i=0;i<A.size();i++) { sumA+=A[i]; } int sumB=0; for(int i=0;i<B.size();i++) { sumB+=B[i]; } int diff=sumA-sumB; //cout<<"diff="<<diff<<endl; vector<int> ret; bool isSwap=false; for(int a=0;a<A.size();a++) { for(int b=0;b<B.size();b++) {//cout<<"a-b="<<*itera-*iterb<<endl; if(diff==2*(A[a]-B[b])) { ret.push_back(A[a]); ret.push_back(B[b]); isSwap=true; break; } } if(isSwap==true) break; } return ret; } };
原文:https://www.cnblogs.com/briskzou/p/12048215.html