如何实现O(n)的2-sum
来源:互联网 发布:网络直播合作协议 编辑:程序博客网 时间:2024/05/07 11:43
2-sum问题 实现找数组中的二元数组(a,b)(a+b=0)
方法一:
循环 O(n2)
方法二:二分查找:
for(int i =0 ; i < n; i++){
Binary_Search(-a[i]);
}
结果 O(nlogn)
方法三:牺牲空间换取时间 基数排序算法
比如10^8内的整数
a[10^8]=0或者1
如果是1的话,代表在,如果是0,代表不存在
遇到一个数字的时候,在数组中比较是否存,就可以实现O(1)
for(int i =0 ; i<n ;i++){
if(a[i] == 1) 存在;
else 不存在;
}
0 0
- 如何实现O(n)的2-sum
- Leetcode - Array - 1. Two Sum (水题,O[n]和O[n^2]实现)
- [LeetCode] 3Sum的O(N^2)解法
- 如何改进O(n^2)的算法
- LeetCode 209. Minimum Size Subarray Sum (O(n)实现)
- 3-SUM问题的O(n²)算法
- 3Sum | LeetCode O(N*N) Solution
- 【leetcode with java】18 4Sum O(n^2)
- 实现数组元素倒序的算法,写出两种实现,时间复杂度为O(n)和O(n/2)
- LeetCode 135. Candy (O(n)时间 O(n)和O(1)空间的两种实现)
- Max Subsequence Sum 最大子序列和问题 O(NlogN)与O(N)算法的对比
- 求数组的最大子段和(O(N^3)-->O(N^2)-->O(NlogN)-->O(N))
- 如何实现在O(n)时间内排序,并且空间复杂度为O(1)
- 如何在O(n)的时间复杂度下构造哈夫曼树
- 关于O(n^2)复杂度的体验
- O(n^2)的一般排序方法
- leetcode题目 寻找和为SUM的两数(O(nlogn)和O(n)解法)
- O(n)实现替换空格
- HTTP基本认证(Basic Authentication)的JAVA示例
- HTML5常用标签
- java程序打包jre以及制作安装包
- mybitas标签使用--------------有简入难
- Zookeeper 安装和配置---学习三
- 如何实现O(n)的2-sum
- VS 和Visual Assist X快捷键
- 使用cocoapods导入第三方类库后 头文件没有代码提示?
- ListView中的每个小View,获取其中的控件
- Longest Substring Without Repeating Characters
- SQL优化原则 编辑
- LeetCode(41)-Rectangle Area
- iOS开发:block使用逻辑
- C#控件及常用设计整理