当前位置: 首页 > article >正文

哈希表-四数之和

代码随想录-刷题笔记

18. 四数之和 - 力扣(LeetCode)

内容:

请一定要看上一篇文章!因为本题跟上一道题逻辑一模一样!

哈希表-三数之和-CSDN博客

这道题跟上一道题的核心一模一样,三数之和可以进行一定程度的简化,变成O(n^2)级别的算法.

但是这道题 包括五数,六数,七数之后. N数之和 都是一个逻辑了。

只不过是进行一下套壳。

代码如下:

class Solution {
    public List<List<Integer>> fourSum(int[] nums, int target) {
        Arrays.sort(nums);
        List<List<Integer>> result = new ArrayList<>();
        for(int i = 0 ; i< nums.length ; i++) {
            if(nums[i] > target && nums[i]>=0) break;
            if(i>0 && nums[i] == nums[i-1]) continue;

            for(int j = i+1 ;j < nums.length ;j++) {
                if(nums[j]+nums[i] > target && nums[j]+nums[i] >=0) break;
                if(j>i+1&&nums[j]==nums[j-1]) continue;

                int left = j + 1;
                int right = nums.length -1;
                while(right > left) {
                    if(nums[i]+nums[j]+nums[left]+nums[right] > target) {
                        right--;
                    }else if(nums[i]+nums[j]+nums[left]+nums[right] < target) {
                        left++;
                    }else{
                        result.add(new ArrayList<>(Arrays.asList(nums[i],nums[j],nums[left],nums[right])));
                        while(right>left && nums[right] == nums[right-1]) right--;
                        while(right>left && nums[left] == nums[left+1]) left++;
                        left++;
                        right--;
                    }
                }

            }
        }
        return result;
    }
}

总结:

上一篇三数之和搞好了就可以了。


http://www.kler.cn/a/546490.html

相关文章:

  • [操作系统] 基础 IO:理解“文件”与 C 接口
  • kron积计算mask类别矩阵
  • SQL Server STUFF 函数的用法及应用场景
  • 上课啦 | 2月17日软考高项【5月备考班】
  • 一个数组,只考虑速度,怎么获取最大值以及最小值?
  • ELK安装部署同步mysql数据
  • 详解 Java 基础的多态机制
  • EventSource的使用
  • 后端调试指南
  • 消息队列之-springcloud-mq-stream 学习
  • Windows 找不到文件gpedit.msc,没有组策略编辑器,解决办法附上
  • k8s集群搭建参考(by lqw)
  • 能源物联网电力计量装置功能参数介绍
  • [ComfyUI]SDXL产品材质迁移工作流分享
  • 深入理解队列数据结构:从定义到Python实现与应用场景
  • web自动化-浏览器驱动下载
  • 市盈率(P/E Ratio):理解股票价格与盈利的关系(中英双语)
  • 自反馈与流量震荡:从 TCP/IP 路由到交通导航
  • ArcGIS基础知识之ArcMap基础设置——ArcMap选项:数据视图及布局视图选项卡的作用及设置
  • Linux开源生态与开发工具链的探索之旅
  • 【以无克有】排序之随机快速排序
  • unity学习37:新版的动画器:动画状态机 Animator
  • 【微服务学习三】openfeign实现远程调用
  • mybatis-plus逆向code generator pgsql实践
  • 1.14学习总结
  • 往年5级考题(c++)