https://leetcode-cn.com/problems/4sum/

解决方案

class Solution {public List<List<Integer>> fourSum(int[] nums, int target) {int n = nums.length;Arrays.sort(nums);List<List<Integer>> ans = new ArrayList<>();for (int i = 0; i < n - 3; i++) {if (i > 0 && nums[i] == nums[i - 1]) continue;for (int j = i + 1; j < n - 2; j++) {if (j > i + 1 && nums[j] == nums[j - 1]) continue;for (int k = j + 1; k < n - 1; k++) {if (k > j + 1 && nums[k] == nums[k - 1]) continue;int target0 = -nums[i] - nums[j] - nums[k] + target;int l = k + 1, r = n - 1;while (l <= r) {int mid = (l + r) >> 1;if (nums[mid] > target0) {r = mid - 1;} else if (nums[mid] < target0) {l = mid + 1;} else {ans.add(Arrays.asList(nums[i], nums[j], nums[k], target0));break;}}}}}return ans;}
}

LeetCode 18 四数之和相关推荐

  1. 4. Leetcode 18. 四数之和 (数组-双向双指针)

    给你一个由 n 个整数组成的数组 nums ,和一个目标值 target .请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] ( ...

  2. [Leetcode 18]四数之和 4 Sum

    [题目] Given an array nums of n integers and an integer target, are there elements a, b, c, and d in n ...

  3. LeetCode 18. 四数之和 思考分析(双指针解)

    目录 需要注意的几点 1.去除剪枝操作 2.去重操作的细节 code以及效果: 题目 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b, ...

  4. leetcode 18. 四数之和(双指针)

    给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满 ...

  5. leetcode 18. 四数之和 (C++)

    给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满 ...

  6. leetcode 18. 四数之和

    题目 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出 ...

  7. Leetcode 18. 四数之和 (每日一题 20211011)

    给你一个由 n 个整数组成的数组 nums ,和一个目标值 target .请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] : ...

  8. 代码随想录算法训练营第07天 | LeetCode 454.四数相加2,383. 赎金信,15. 三数之和,18. 四数之和,总结

    LeetCode [454. 四数相加 II] 题目:给你四个整数数组 nums1.nums2.nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足 ...

  9. 代码随想录算法训练营第6天 | 454. 四数相加 II 383. 赎金信 15. 三数之和 18. 四数之和

    一.Leetcode 454. 四数相加 II 相当于两数相加.但是呢很巧妙的是,卡哥在遍历CD数组时把查哈希表的方法融入了进去.学习一下. 二.Leetcode 383. 赎金信 更简单了,主要是审 ...

最新文章

  1. 【Go】Go基础(九):接口(Interfaces)与反射(reflection)
  2. 3 月,跳还是不跳?
  3. Windows Phone笔记(3)触摸简介
  4. Memcached 源码分析——从 main 函数说起
  5. 知识表示与知识图谱--介绍
  6. 4g通信模块怎么连接sim卡_4G通信模块在ARM平台下的应用
  7. 【转】iOS编译OpenSSL静态库(使用脚本自动编译)
  8. 家电智能化转型之下 长虹在挖什么“坑”?
  9. java javac 以及 javaw
  10. mysql like模糊查询like %someTitle%效率低下
  11. nginx小技巧-动态域名(微信,小程序80端口)
  12. mybatis-plus使用和原理剖析之逻辑删除
  13. java flip_GitHub - bowen903/ViewFlipAnimator: 一种超简单纯Java实现的卡片翻转效果
  14. 深入分析Java Web技术内幕读书笔记(二)浅析DNS域名解析过程
  15. Bootstrap学习之表单
  16. 解决方案|电力行业应如何应对数字化转型危机
  17. NONMEN软件概览及数据文件
  18. Camera和Image sensor技术基础笔记(4) -- 白平衡White Balance
  19. 拉取项目pom文件报错,jai_core-1.1.3.jar,解决jar引入问题
  20. php民主评议源码,校园表白墙php源码

热门文章

  1. Sqlite数据库相关
  2. actionscript3 事件类型
  3. recovery v1跟recovery v2的区别
  4. C语言程序设计 练习题参考答案 第七章 (2) 指针与数组 main函数形参
  5. mysql delete返回值_Mybatis执行sql(insert、update、delete)返回值问题
  6. python turtle调整画布宽高_turtle.screensize改变不了窗口大小?
  7. 微信红包随机数字_微信红包的随机算法
  8. 搭建一个Struts2工程
  9. 为了OFFER,花了几个小时,刷下Leetcode链表算法题
  10. 三、新手Jupyter不会用,我十招教你盘她