社区
数据结构与算法
帖子详情
求大佬说说这道算法题的解法
Rachelint
2018-09-19 09:16:28
输入N个数(可以重复),每个数都是2的整数次幂,问有多少个整数可以表示为这些数中若干个(可以是0个)的和。
例如,输入3个数1,4,4,则0,1,4,5,8,9均可以表示;2,3和6则不行。
我的思路是先解决N个数不可重复的情况,这样的话,2的整数次幂这个条件可以派的上用场,但之后就不知道怎么继续了。
其
...全文
283
8
打赏
收藏
求大佬说说这道算法题的解法
输入N个数(可以重复),每个数都是2的整数次幂,问有多少个整数可以表示为这些数中若干个(可以是0个)的和。 例如,输入3个数1,4,4,则0,1,4,5,8,9均可以表示;2,3和6则不行。 我的思路是先解决N个数不可重复的情况,这样的话,2的整数次幂这个条件可以派的上用场,但之后就不知道怎么继续了。 其
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
636f6c696e
2018-10-16
打赏
举报
回复
先排序,然后做简化,3个同样的2次幂等价于1个2次幂+1个2的高次幂
Black_Blade
2018-10-12
打赏
举报
回复
算法如下:
输入:input[]
初始化S = {0}
for i = 1 to n:
S' = { x + input[i] | if x in S}
S = S ∪ S'
输出:|S|
以为输入是大于0的,S可以以一个递增的链表来表示,这样解决结果的复杂度为O(n^2)
idealguy
2018-10-03
打赏
举报
回复
将给定的数分成n组,用两个数组A(i), N(i), i=1..n,表示,A(i)表示每个不重复的数, N(i)表示每个数的重复次数。
然后就归结为一个“任意重循环”问题。 请参阅:
完美实现任意重循环 https://bbs.csdn.net/topics/300028827
idealguy
2018-10-03
打赏
举报
回复
楼上更正
1)给定一个整数,问能否表示为这些数中若干个的和?(可以是0个(否),>
=
1个(是))
idealguy
2018-10-03
打赏
举报
回复
“输入N个数(可以重复),每个数都是2的整数次幂“,原题的提问目标不明确:”问有多少个整数可以表示为这些数中若干个(可以是0个)的和。”,可以有两种可能:
1)给定一个整数,问能否表示为这些数中若干个的和?(可以是0个(否),>1个(是))
2) 问有多少个整数可以表示为这些数中若干个(至少一个)的和。因为零个没有意义。
这两种情况的算法完全不一样。
tanta
2018-09-19
打赏
举报
回复
C#的实现:
private void button1_Click(object sender, EventArgs e)
{
int[] N = { 1, 4, 4 };
Array.Sort(N);
Array.Reverse(N);
int Num = int.Parse(textBox1.Text);
foreach(int i in N)
{
if(Num >=i)
{
Num -= i;
}
}
if(Num ==0)
{
label1.Text = "可以";
}
else
{
label1.Text = "不行";
}
}
tanta
2018-09-19
打赏
举报
回复
我给你一个思路,你看可不可以:
N个2的整数次幂从大到小排序,分别是n1,n2
输入的数为X,
循环n1,n2...
如果X大于循环中的n,就从中减去
循环结束后,判断,有剩余,说明不行,有,说明行。
dceacho
2018-09-19
打赏
举报
回复
先简化输入,去掉一些没用的,如果一个数至少出现了三次,则可以合并其中的2个
比如,2,4,4,4,32,32,32,32
4+4=8,所以这两个4可以做到的单个8也能做到
优化后就剩 2,4,8,32,32,64了
不停的优化至不能再优化
然后一个数重复次数就不超过3次了, 所以即使是64位,简化后的输入个数也最多是128个数字(每个数字出现2次)
最多128个数字算组合然后去掉可能重复的,复杂度还是可以接受的
LeetCode,
算法
大佬
总结,知识点加例
题
刷leetcode的可以借鉴,里面有大量例
题
和知识...这么做不太好的一点是,如果只练习这 101 道
题
,读者可能对
算法
和数据结构的掌握不够扎 实。因此在每一章节的末尾,我都加上了一些推荐的练习
题
,并给出了一些
解法
提示。
leetcode中国-data-structure-and-algorithm-exercises:数据结构与
算法
实践-主要使用Go语言实现
leetcode中国 Data-Structure-And-Algorithm-Exercises 数据结构与
算法
实践-主要使用Go语言实现 。 带Better的是其他
大佬
或者后面想到的
题
解 ...前两百道
题
175. 组合两个表 182. 查找重复的电子邮箱
2020最新-精选基础
算法
100
题
(面试必备)
作为一个程序员,
算法
能力必不可少,虽然不一定是
算法
工程师,但是
算法
还是彰显着个人的编码能力,面试中也经常会被问到,甚至会被要
求
临场做
算法
题
,所以,还是好好积累吧。 个人其实对
算法
挺有兴趣的,从3月份...
算法
题
做到崩溃?刷了几千道
算法
题
,关于如何刷
题
有些话我想对你
说
算法
刷到最后,最后记在脑子里的不是代码,是思路,如果你有思路,那你一定能把代码写出来,你不可能记住所有
题
的代码,唯一可以记住的是解
题
思路,所以怎么码代码不是一个问
题
,怎么解
题
才是一个问
题
,建议刷
题
的...
惜败!就因这一道
算法
题
,让我错失了字节跳动offer
前言
算法
,在行业里越来越重要,一线互联网公司也非常注重
算法
,所以在面试时基本上都有涉及到。...今天就分享一下
这道
算法
题
,让我们好好聊一聊,怎么搞定字节跳动的面试吧! 拦截我的offer,竟是
这道
算法
.
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章