暴力求解3sum超時,花了一上午寫的,超時,有時間換個思路寫吧暫時就不改了less
class Solution { public: vector<vector<int>> threeSum(vector<int>& nums) { int len = int(nums.size()); sort(nums.begin(), nums.end(),less<int>()); int newlenth = len*(len-1)*(len-2)/6; vector<vector<int>> res(newlenth,vector<int>(3,0)); //vector<vector <int> > ivec(m ,vector<int>(n,0)); int p=0; for (int i=0; i<len; i++) { if(i > 0 && nums[i] == nums[i-1]){ continue; } for (int j=i+1; j<len; j++) { if(j > 0 && nums[j] == nums[j-1]){ continue; } for (int k=j+1; k<len; k++) { if(k > 0 && nums[k] == nums[k-1]){ continue; } if (nums[i]+nums[j]+nums[k]==0) { cout<<i<<endl<<j<<endl<<k<<endl; res[p][0]=nums[i]; res[p][1]=nums[j]; res[p][2]=nums[k]; cout<<res[p][0]<<" "<<res[p][1]<< " "<<res[p][2]<<endl; p++; } } } } return res; } };
以後我又寫了個二分查找,也超時了,居然是應爲打印 ,我用了一個count++ 計數,致使了超時,先添加錯誤代碼,在添加正確代碼,我以爲挺好理解的。添加代碼改版了 沒弄明白,晚上接着貼代碼吧~ code