zoukankan      html  css  js  c++  java
  • LeetCode—— 四数之和

    题目地址:https://leetcode-cn.com/problems/4sum/

    解题思路:和之前三数求和类似,只不过多了层循环。

    class Solution {
    public:
        vector<vector<int>> fourSum(vector<int>& nums, int target) {
            sort(nums.begin(), nums.end());
            vector<vector<int>> ans;
            int a, b, c, d;
            int len = nums.size();
            if (len < 4)
                return ans;
            for (a = 0; a < len; a++) {
                if (a > 0 && nums[a] == nums[a - 1])
                    continue;
                for (b = a + 1; b < len; b++) {
                    if (b > a + 1 && nums[b] == nums[b - 1])
                        continue;
                    c = b + 1;
                    d = len - 1;
                    while (c < d) {
                        if (c > b + 1 && nums[c] == nums[c - 1]) {
                            c++;
                            continue;
                        }
                        while (c < d&&nums[a] + nums[b] + nums[c] + nums[d] > target)
                            d--;
                        while (c < d&&nums[a] + nums[b] + nums[c] + nums[d] < target)
                            c++;
                        if (c < d&& nums[a] + nums[b] + nums[c] + nums[d] == target) {
                            ans.push_back({ nums[a],nums[b], nums[c], nums[d] });
                            c++;
                        }
                    }
                }
            }
            return ans;
        }
    };
  • 相关阅读:
    SQL Challenges靶机
    XSS靶机1
    djinn靶机
    Sunset靶机
    统计学 一 集中趋势
    测试
    测试
    统计学 一 集中趋势
    算法分析
    代码测试
  • 原文地址:https://www.cnblogs.com/cc-xiao5/p/13441515.html
Copyright © 2011-2022 走看看