leetcode -- 3 sum
3-sum
题目描写叙述:
Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.
题目要求:
- Elements in a triplet (a,b,c) must be in non-descending order. (ie, a ≤ b ≤ c)
- The solution set must not contain duplicate triplets.
每一个三元组内的元素是按非递减的顺序存放的,而且结果中要求不含有同样的集合。
解法:首先是排序,接着要求是不含有同样的集合,显然能够使用set,可是以下的代码所有都避免使用set。
以下一共使用了3种方法:
法一:DFS,复杂度高,而且在非常小的样例上都超时。
法二:枚举全部的2-sum和。再在数组中查找是否存在另外一个数,使得该3个数的和为0.
此法不须要使用set,直接就能够得到结果,可是要注意避免反复计算,例如以下两点。
注1:上述的枚举2-sum时,对于剩下的那个数仅仅须要在 “下标都大于前两者时”进行。例如以下例:
在上图中,当枚举到i和j时,另外一个元素仅仅须要在 图示的 k 范围内枚举就可以。
注2:假设数组中有大量的反复元素,那么i和j(保持有A[i] == A[j])就仅仅须要考虑一次就可以。
例如以下例:
上图中,i 和 j仅仅须要考虑一次, 当 j 移动到 j‘ 的时候,是不须要考虑的,由于与前面的 i 和 j 是反复的。
代码例如以下:
leetcode -- 3 sum相关推荐
- 【同113】LeetCode 129. Sum Root to Leaf Numbers
LeetCode 129. Sum Root to Leaf Numbers Solution1:我的答案 二叉树路径和问题,类似113 /*** Definition for a binary tr ...
- LeetCode Path Sum III(前缀和)
问题: 给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点). 二叉树 ...
- LeetCode Combination Sum IV(动态规划)
问题:给出一个数组nums和目标数target,问有多少组合形式 思路:用dp(i)表示目标数target的组合数.则有状态转移关系为dp(i)=sum(dp(i-nums[j])),其中i>= ...
- LeetCode Range Sum Query - Mutable(树状数组、线段树)
问题:给出一个整数数组,求出数组从索引i到j范围内元素的总和.update(i,val)将下标i的数值更新为val 思路:第一种方式是直接根据定义,计算总和时直接计算从i到j的和 第二种方式是使用树状 ...
- LeetCode Two Sum III - Data structure design
原题链接在这里:https://leetcode.com/problems/two-sum-iii-data-structure-design/ 题目: Design and implement a ...
- LeetCode Subarray Sum Equals K
原题链接在这里:https://leetcode.com/problems/subarray-sum-equals-k/description/ 题目: Given an array of integ ...
- leetcode 907. Sum of Subarray Minimums | 907. 子数组的最小值之和(单调栈)
题目 https://leetcode.com/problems/sum-of-subarray-minimums/ 题解 单调栈问题.参考左神算法课:https://ke.qq.com/webcou ...
- leetcode 371. Sum of Two Integers | 371. 两整数之和(补码运算)
题目 https://leetcode.com/problems/sum-of-two-integers/ 题解 根据 related topics 可知,本题考察二进制运算. 第一次提交的时候,没想 ...
- [Leetcode]Two sum(两数之和)系列总结
Two sum 题目 Given an array of integers, return indices of the two numbers such that they add up to a ...
最新文章
- [短文速读] 重载有暗坑,JVM是如何执行方法的
- puppet自动化运维之资源关系
- typedef的作用
- wxWidgets:wxArrayString类用法
- 基于 Vue.js 的移动端组件库mint-ui实现无限滚动加载更多
- JAVA之运算符优先级
- 事故现场:MySQL 中一个双引号的错位引发的血案
- android隐式广播和显式广播是什么,在Android8.0上突破隐式广播的限制
- spring aop advice
- Python绘制分形树(一)
- BP,RNN 和 LSTM暨《Supervised Sequence Labelling with Recurrent Neural Networks-2012》阅读笔记
- GPS数据矢量化JAVA_算法 – acosf()的精确矢量化实现
- 苹果提示:“未信任的企业开发者”
- 换手机了备忘录怎么恢复?专家为你解答数据恢复问题
- 一文读懂数据中台技术架构
- 水晶报表 子报表 的应用
- 初始化Linux数据盘(fdisk)
- HTML5网页设计基础——精美电商悬浮窗
- 服务器与普通电脑之间的区别是什么?
- 走遍美国 —— 各州及其别名
热门文章
- Apache,Nginx,Lighttpd分别使用X-sendfile功能提升文件下载性能
- 从奥运订票系统说起——谈FastCGI 与IT 架构
- Linux动态库(.so)搜索路径
- wireshark的使用教程--用实践的方式帮助我们理解TCP/IP中的各个协议是如何工作的
- Asp.net 2.0 C#实现压缩/解压功能
- java微信菜单获取openid_微信二次开发点击菜单openId的获取
- docker mysql 生产环境_Docker构建MySQL环境
- 账号管理工具_短视频矩阵管理工具,多个账号同步管理
- python栈溢出_Python栈溢出【新手必学】
- Java学习总结:31(StringBuffer类)