leetcode18. 四数之和(双指针)
生活随笔
收集整理的這篇文章主要介紹了
leetcode18. 四数之和(双指针)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一:題目
二:上碼
class Solution { public:vector<vector<int>> fourSum(vector<int>& nums, int target) {vector<vector<int> >ans;vector<int> v;sort(nums.begin(),nums.end());for(int i = 0; i < nums.size(); i++) {//去重 防止相鄰的兩個數(shù)相等if(i > 0 && nums[i] == nums[i-1]) {continue;}for(int j = i+1; j < nums.size(); j++) {//去重if(j > i+1 && nums[j] == nums[j-1]) {continue;} int left = j+1;int right = nums.size()-1;while(left < right){//nums[i]+nums[j]+nums[left]+nums[right] > target 執(zhí)行出錯if(nums[i]+nums[j] > target - (nums[left]+nums[right])) right--;else if(nums[i]+nums[j] < target -(nums[left]+nums[right])){left++;}else{v.push_back(nums[i]);v.push_back(nums[j]);v.push_back(nums[left]);v.push_back(nums[right]);ans.push_back(v);//去重處理while(left < right && nums[left] == nums[left+1]) left++;while(left < right && nums[right] == nums[right-1]) right--;//完成一組后left++;right--;v.clear();}}}}return ans;} };這個題跟三個數(shù)之和的解法一樣就是多了一層for循環(huán)而已
總結(jié)
以上是生活随笔為你收集整理的leetcode18. 四数之和(双指针)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 红魔 9 Pro 系列手机预热:搭载全新
- 下一篇: leedcode344. 反转字符串