摘要:
1.5 快速找出故障机器 基本问题 1 在某一个时间得到一个数据文件ID的列表,能否快速地找出这个表中仅出现一次的ID 解法: 1 使用hashset 在set里判重复即可 time O(N) space O(N) 2 使用异或操作 time O(N) space O(1) 3 使用sum和操作 t 阅读全文
摘要:
2.6 精确表达浮点数 基本问题:在计算机中,一般使用float和double来表示浮点数,但是由于计算机本身硬件的限制,不能够很准确的表示小数,为了得到精确的结果,用分数来表示小数,如果一个小数是无限小数,我们假设它是无限循环小数。 解法 经题目可得,我们输入的数字主要有两种 一种是有限小数 \( 阅读全文
摘要:
1.10 双线程高效下载 基础问题:并行下载网上的资源 1 什么时候才算是完成任务 两个线程必须协同工作,将网络上的数据下载完毕并且完全存储到硬盘上,只有在这个时候,两个线程才能正常终止。 2 为了提高效率,希望两个线程能尽可能的同时工作 如果使用mutex,下载和存储线程将不能同时工作,因此Sem 阅读全文
摘要:
1.12 NIM(2)“拈”游戏分析 基础问题:有N块石头和两个玩家A和B,玩家A先将石头分成若干堆,然后按照BABAB的顺序不断轮流取石头,能将剩下的石头一次取光的玩家获胜,每一次取石头,每一个玩家只能从若干堆石头中任选一堆,取这一堆石头中任意数目(大于1)个石头,请问:玩家A要怎样分配和取石头才 阅读全文
摘要:
1.14 连连看游戏设计 基础问题: 1 怎样用简单的计算机模型来描述这个问题? 状态机 2 怎样判断两个图形能否相消? 两个图形相同 他们之间存在转弯数小于3的路径 3 怎样求出相同图形之间的最短路径(转弯数最少,路径经过的格子数目最少)? 传统的最短路径问题是求经过格子数目最少的路径然后这个题目 阅读全文
摘要:
1.11 NIM(1)一排石头的游戏 基本问题:个石头排成一行,每一块石头有各自固定的位置。两个玩家依次取石头,每一个玩家每一次可以取其中任意一块石头,或者相邻的两块石头,石头在游戏过程中不能移位,最后能将剩下的石头一次取光的玩家获胜。 answer: 必胜策略: n = 1 拿完,必胜 n = 2 阅读全文
摘要:
4.3 买票找零问题 基础问题:在一场激烈的足球赛开始前,售票工作正在紧张的进行中。每一张球票为50元。现在有2n个人排队购票,其中有n个人手持50元的钞票,另外n个人手持100元的钞票,假设开始售票时,售票处没有零钱.问这2n个人有多少种排队方式,不至于售票处出现找不开钱的局面? answer \ 阅读全文
摘要:
4.8 三角形测试用例 基本问题:输入三角形的三条边长,判断是否能够构成一个三角形,以及是什么样子的三角形(直角,锐角,钝角,等边,等腰) 1 如何用一个byte来表示各种输出情况? 7 6 5 4 3 2 1 0 三角形标记位 直角 锐角 钝角 等边 等腰 2 如果你是一名测试工程师,应该如何写测 阅读全文
摘要:
4.5 磁带文件存放优化 基础问题:假设其中一盘磁带上有n份文件,他们的长度分别为$L[0],L[1],L[2],...,L[n-1]$,且被访问的概率分别为$P[0],P[1],P[2],...,P[n-1]$,如果这些文件被访问的概率相同,那么请问怎样安排他们在磁带上的存储顺序最好? 解答: 首 阅读全文
摘要:
4.6 桶中取黑白球 基本问题: 有一个桶 里面有白球和黑球各100个,你必须按照以下规则将球取出来 1 每次从桶中拿出来两个球 2 如果是两个同颜色的球,就在放入一颗黑球 3 如果是两个异色的球,就在放入一个白球 问:最后桶里面只剩下一个黑球的概率是多少? 解法 解法1:数学分析 解法2:位运算 阅读全文