Lighter or Heavier算法设计
来源:互联网 发布:charge是什么软件 编辑:程序博客网 时间:2024/06/05 07:02
问题:n个银币,n>2,其中有一个是假的,其他的真的重量完全相同,现在有一个天平,但是没有重量砝码,设计算法来得出假的银币是偏轻还是偏重?要求算法复杂度为o(1)。
我的思路:
1. 如果n为奇数,随机取出一个银币,将剩下的n-1个银币平均分为两份,
1a) 如果重量相同,将取出的银币替换两边任意一个,就可以得出结果;
1b) 如果重量不同,不失一般性,取重的一组,银币数量为(n-1)/2,
1aa)如果为奇数,随机取出一个,将剩下的(n-1)/2-1个均分,
如果重量相同,将取出一个替代两组中随意一个,
如果仍然相同,则假币偏轻;
如果不同,则假币偏重;
如果重量不同,则假币偏重;
1ab) 如果为偶数,均分成两份,
如果重量相同,则假币偏轻;
如果重量不同,则假币偏重;
2. 如果n为偶数,则均分为两份,重量必定不同,转到1b)
自己看了一遍应该没什么问题,去google看看
0 0
- Lighter or Heavier算法设计
- Lighter ViewControllers
- Pluzzes - Heavier ball
- Better, Faster, Lighter Java
- Lighter View Controllers
- Lighter View Controllers
- Color lighter osmanthus
- Lighter View Controllers
- [SimpleQuant]Pick those left heavier than right
- Make Linux faster and lighter
- Better, Faster, Lighter Programming in .NET
- some resource about 'Better, Faster, Lighter Java'
- 分析题or设计题
- shift-And / shift-Or 算法
- 算法设计
- 算法设计
- 算法设计
- 算法设计
- 3D数学基础:图形与游戏开发》阅读感言
- Java中读写锁ReadWriteLock的使用示例
- Struts1.x系列教程(10):Validator验证框架入门
- LeetCode 082~083 Remove Duplicates from Sorted List
- P122第28题
- Lighter or Heavier算法设计
- lucene 索引文件格式
- AndrewNg - 线性回归【1】梯度下降
- UIButton,UIAlertView
- (7-6)hive的set命令
- 相关
- (ASCII UTF-8 Unicode )字符编码小结
- kyeremal-网络流24题T4-魔术球问题
- 使用java程序模拟页面发送http的post请求