打算冲一把算法类比赛,之前一直对算法提不起兴趣,也有我自己对它的抵触,本身算法也比较菜。
但现在打算勤勤恳恳刷题,踏踏实实总结,冲!
数组——双指针
三数之和
错误做法
三重循环框架,最浅显的思路,复杂度是N^3,没有任何优化。
class Solution {
public:
vector<vector<int>> threeSum(vector<int>& nums) {
int i,j,k;
vector<vector<int>> ans;
sort(nums.begin(),nums.end());
for(i=0;i<nums.size();i++)
for(j=i+1;j<nums.size();j++)
for(k=j+1;k<nums.size();k++){
if(nums[i]+nums[j]+nums[k]==0){
ans.push_back({
nums[i], nums[j], nums