当前位置: 代码迷 >> 综合 >> leetcode六月每日一题 leetcode15(双指针)
  详细解决方案

leetcode六月每日一题 leetcode15(双指针)

热度:72   发布时间:2023-11-13 12:53:52.0

在这里插入图片描述

class Solution {//要去掉重复的三元组
public:vector<vector<int>> threeSum(vector<int>& nums) {int target;vector<vector<int>> ans;sort( nums.begin(),nums.end() ); //将所给的数据排序for(int i = 0 ; i < nums.size(); i++){int l = i + 1, r = nums.size() - 1; target = nums[i];if (i > 0 && nums[i] == nums[i - 1]) continue; //去重while(l < r){if(nums[l] + nums[r] + target < 0) l++;else if(nums[l] + nums[r] + target > 0) r--;else{ans.push_back({target,nums[l],nums[r]});l++; r--;while (l < r && nums[l] == nums[l - 1]) l++;//去重while (l < r && nums[r] == nums[r + 1]) r--;//去重}}}return ans;}
};