LeetCode 上有一道M=2的题.用两层循环遍历,O(n^2)可解。
M=2
但如果M=5或M=10呢,在这种情况下,除了盲搜外,有什么想对高效的方法吗?
M=5
M=10
把问题一步一步转成2 sum 问题。根据这个思路,k sum能做到复杂度是$$ O(n^{k-1}). $$
另外,2 sum 其实可以做到 $$ O(n) $$
leetcode之后会有4sum,3sum题目,还是4sum转化3sum,3sum到2sum,看看了看讨论区也就这思想靠谱
难道不是转化成两个数组,遍历一个,二分另外一个?比如 m=7, 遍历一个3n的数组,然后在二分另外一个4n的数组?n^((m+1)/2)
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(3)
把问题一步一步转成2 sum 问题。
根据这个思路,k sum能做到复杂度是$$ O(n^{k-1}). $$
另外,2 sum 其实可以做到 $$ O(n) $$
leetcode之后会有4sum,3sum题目,还是4sum转化3sum,3sum到2sum,看看了看讨论区也就这思想靠谱
难道不是转化成两个数组,遍历一个,二分另外一个?
比如 m=7, 遍历一个3n的数组,然后在二分另外一个4n的数组?
n^((m+1)/2)