c++ - 算法题:N个数中找M个数,其之和等于target
PHPz
PHPz 2017-04-17 14:46:40
[C++讨论组]

LeetCode 上有一道M=2的题.
用两层循环遍历,O(n^2)可解。

但如果M=5M=10呢,在这种情况下,除了盲搜外,有什么想对高效的方法吗?

PHPz
PHPz

学习是最好的投资!

全部回复(3)
阿神

把问题一步一步转成2 sum 问题。
根据这个思路,k sum能做到复杂度是$$ O(n^{k-1}). $$

另外,2 sum 其实可以做到 $$ O(n) $$

黄舟

leetcode之后会有4sum,3sum题目,还是4sum转化3sum,3sum到2sum,看看了看讨论区也就这思想靠谱

PHP中文网

难道不是转化成两个数组,遍历一个,二分另外一个?
比如 m=7, 遍历一个3n的数组,然后在二分另外一个4n的数组?
n^((m+1)/2)

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号