摘要: 题目描述 一个大小为n的数组,里面的数都属于范围[0,n-1],有不确定的重复元素,找到至少一个重复元素,要求O(1)空间复杂度和O(n)时间复杂度。解法分析: 具体代码如下所示。 1 #include 2 #include 3 using namespace std; 4 5 // 6 int FindDuplicate(int array[], int n) 7 { 8 assert(array != NULL && n >= 2); 9 10 int i = 0;11 while(i < n)12 {13 while(ar... 阅读全文
posted @ 2013-11-29 16:23 虔诚的学习者 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 题目描述 有5个海盗1、2、3、4、5,得到100个金币,决定分掉,分法怪异:首先A提出分法,B~E表决,如果不过半数同意,就砍掉A的头。然后由B来分,C~E表决,如果不过半数同意,就砍掉B的头。依次类推,如果假设强盗都足够聪明,在不被砍掉头的同时获得最多金币。问:最后结果如何?定义问题 5个海盗必须按照上述规则,找出最优分配方案,否则将被其他人扔下大海。当前状态 正确分配方案还没出来,必须尽快找出最优解。分析 典型的nim取子问题的变形,采用倒推方式即可找出最优解。制定解决方案 倒推方法如下所示。 (1)如果只有海盗,如何分配? (2)如果有两个海盗,如何分配? (3)如果有... 阅读全文
posted @ 2013-11-29 15:07 虔诚的学习者 阅读(2599) 评论(1) 推荐(0) 编辑