算法笔试模拟题精解之“钱庄” <23算法笔试模拟题精解之“钱庄”贡献者 | 张鹏飞简介:可以先分析示例是如何实现的,以此为突破点。题目描述等级:中等知识点:贪心查看题目:钱庄钱庄每天能够收到很多散钱,第 i 个散钱的值 2^wi。为了便于管理,钱庄每天都会向中央银行申请兑换钱币,假设钱庄有一些散钱使得 2^k1+2^k2+...+2^km=2^x(x 为非负整数),那么就可以将这些散钱兑换成一个大钱币,问在钱庄收到的这些散钱最终最少能变成几个钱币?输入一个整数 n,表示一共有 n 个钱币 (1 <= n <= 10^6);再输入 n 个整数 wi,表示有价值 2^wi(0 <= wi <= 10^6) 的钱币。输出兑换后最少的钱币数示例 1输入:4[1, 1, 2, 3]24>算法笔试模拟题精解之“钱庄”输出:1注意2^1+2^1+2^2+2^3=2^4,因此兑换后最少为一个钱币解题思路一大致思路:对于 [1, 1, 2, 3] 样例,答案 1 是怎么算出来的?按照题目的思路,应该这样算:2^1+2^1+2^2+2^3=2^4, 因此为 1,但是如果这样做,肯定会超时,我是这样算的:对
目录
171
0
收起右侧 展开右侧
程序员面试宝典 > 算法笔试模拟题精解之“钱庄”
  • 读书笔记
    我的笔记
    暂无相关笔记,快来写一篇吧!
点击浏览下一章>>