关于SQL Server 2005的学习笔记―分析函数
2010-04-12 17:41
363 查看
题目:
有25匹马,一个5道的赛马场,最少比赛几次,能把这25匹马中的1,2,3名找出来,并排出1,2,3名?如何组织每次比赛?
马可以重复赛,不考虑疲倦影响速度等其他问题。
思路:
首先肯定,25匹要分组赛。
最容易掉入,也最容易识别的陷阱就是:
5匹一组,赛5次,然后每组第一名再赛一次,总共六次,就ok了。这样的问题就在于又可能某组的第二名比其他4组的第一名都快。进而想到最坏的 可能就是,分组的时候把真正的前三名分到同一组了。
问题的关键变成了第6次以后应该怎么挑选再赛的马
5分钟左右,应该就能想到下面的正确思路。
前6次就按照刚才的赛法,5次小组赛,一次各小组第一名赛,然后按各小组第一名在第六次比赛中的名次给各组编号。
第六次跑第一那匹马所在的组就是第一组。
这样,首先确定了真正的第一名,就是第一组第一名,下面要找真正的第二名和第三名。
想一下,4,5组所有马匹已经不可能了,直接排除
下面在1组4匹,2,3各5匹共14匹马力用最少的比赛次数决定真正的2,3名
真正可能来竞争这个2,3名的,也只有第一组2,3名,第二组1,2名,和第三组第1名。仔细想想就明白了
所以只要挑这5匹出来,再赛一次,取前两名
总共7次,就排出了25匹中的前三名
题目是不难
但是要能在面试的环境下快速的整理思路,还是有点难度的:)
有25匹马,一个5道的赛马场,最少比赛几次,能把这25匹马中的1,2,3名找出来,并排出1,2,3名?如何组织每次比赛?
马可以重复赛,不考虑疲倦影响速度等其他问题。
思路:
首先肯定,25匹要分组赛。
最容易掉入,也最容易识别的陷阱就是:
5匹一组,赛5次,然后每组第一名再赛一次,总共六次,就ok了。这样的问题就在于又可能某组的第二名比其他4组的第一名都快。进而想到最坏的 可能就是,分组的时候把真正的前三名分到同一组了。
问题的关键变成了第6次以后应该怎么挑选再赛的马
5分钟左右,应该就能想到下面的正确思路。
前6次就按照刚才的赛法,5次小组赛,一次各小组第一名赛,然后按各小组第一名在第六次比赛中的名次给各组编号。
第六次跑第一那匹马所在的组就是第一组。
这样,首先确定了真正的第一名,就是第一组第一名,下面要找真正的第二名和第三名。
想一下,4,5组所有马匹已经不可能了,直接排除
下面在1组4匹,2,3各5匹共14匹马力用最少的比赛次数决定真正的2,3名
真正可能来竞争这个2,3名的,也只有第一组2,3名,第二组1,2名,和第三组第1名。仔细想想就明白了
所以只要挑这5匹出来,再赛一次,取前两名
总共7次,就排出了25匹中的前三名
题目是不难
但是要能在面试的环境下快速的整理思路,还是有点难度的:)
相关文章推荐
- 关于SQL Server 2005的学习笔记—分析函数
- 关于SQLServer2005的学习笔记——分析函数
- 关于SQLServer2005的学习笔记——分析函数
- SQL Server 2005 T-SQL 学习笔记:排名函数
- SQL Server 2005 技术内幕 TSQL查询学习笔记chapter4之三排名函数Row_number()和分页应用
- SQL Server 2005 T-SQL 学习笔记:排名函数
- 【学习笔记】自定义关于wchar_t*的相关函数
- 29.Oracle深度学习笔记——分析函数
- SQL Server 2005存储过程学习笔记——引子
- (学习笔记)SQL Server 2005所支持的XQuery 方法
- SQL Server 2005 学习笔记--SSIS篇(2)
- SQL Server 2005 学习笔记 Part 1
- SQL Server 2005学习笔记之 XML架构
- SQL Server 2005 学习笔记之触发器简介[转]
- SIPP 代码学习笔记3- 关于函数
- SQL Server 2005 学习笔记系列文章
- <<SQL Server 2005 高级程序设计>> 学习笔记(4)
- c&c++反汇编与逆向分析学习笔记(4)--启动函数和用户入口
- SQL Server 2005学习笔记⑦- 分页(按分组进行分页)
- Node.js学习笔记(3)——关于回调函数和函数的回调