随笔分类 - 编程之美
编程之美-微软面试心得
摘要:2.21 只考加法的面试题 基础问题 我们知道:1+2=3;4+5=9;2+3+4=9; 等式左边都是两个以上连续的自然数相加,那么是不是所有的整数都可以写成这种形式呢? 1 写一个程序,对于一个64位正整数,输出它所有可能的连续自然数(两个以上)之和的算式; \(num=i + i+1 + i+2
阅读全文
摘要:2.5 寻找最大的K个数 基础问题 有很多个无序的数,我们姑且假定他们各不相等,怎么选出其中最大的K个数呢? 解法 解法 1 : 排序 quickSort selectSort popSort 先排序,然后再从中选出K个元素。时间复杂度$O(NlogN) + O(K) = O(NlogN)$,排序可
阅读全文
摘要:2.8 找到符合条件的整数 基础问题:任意给定一个正整数N,求一个最小的正整数M(M>1),使得N*M的十进制表示形式里只含有1和0 解法 解法1 : 暴力解决 解法2 : 观察规律 拓展问题(待定) 1 对于任意的N,一定存在M,使得N*M的乘积的十进制表示只有0和1么? 2 怎样找出满足题目要求
阅读全文
摘要:3.11 程序改错 基础问题:有一个已经排好序的数组,返回数组中最后一个目标元素的下标 All Coding // 3.11 程序改错 class Test{ public static void main(String[] args) { /** 基础问题:有一个已经排好序的数组,返回数组中最后一
阅读全文
摘要:2.16 求数组中最长的递增子序列 基本问题 解法 解法1 : 动态规划 时间复杂度为$O(n^2)$ 状态定义 : dp[i] 表示以i结尾的最大上升子序列的长度 状态转移方程 : dp[i] = max{dp[j+1],1,0 ⇐ j < i} if(a[j] < a[i]) 边界处理: dp[
阅读全文
摘要:4.1 金刚坐飞机问题 现在有一架飞机要起飞,乘客们正准备按机票号码(1,2,3...,N)一次排队登机。突然来了一只大猩猩(金刚)。他也有机票,但是他插队第一个登上了飞机,然后随意的选择了一个座位坐下了。根据社会的和谐程度,其他的乘客有两种反应: 基本问题 1.乘客们都义愤填膺,“既然金刚同志都不
阅读全文
摘要:1.16 24点游戏 基本问题 你有 4 张写有 1 到 9 数字的牌。你需要判断是否能通过 *,/,+,-,(,) 的运算得到 24。 解法 解法1:暴力 解法2:记忆化+二进制 (这个个人能力有限,写不出来) 拓展问题 1 测试几个用例 easy 2 不妨考虑一下,如果要优化上述算法,可以从那几
阅读全文
摘要:3.9 重建二叉树 基本问题 : 给你一个中序遍历序列和一个前序遍历序列,还原该二叉树。 // 3.9 重建二叉树 class Test{ static class TreeNode{ int val; TreeNode left; TreeNode right; TreeNode(){}; Tre
阅读全文
摘要:3.7 队列中取最大值操作问题 基本问题:假设有这样一个拥有三个操作的队列: EnQueue(v) : 将v加入队列中 DeQueue() : 使队列中的队首元素删除并返回此元素 MaxElement : 返回队列中的最大元素 请设计一种数据结构和算法,让MaxElement操作的时间复杂度尽可能的
阅读全文
摘要:1.17 俄罗斯方块游戏 基本问题: 1 如何设计各种数据结构来表示游戏中的各种元素,如每一个可活动的积木块,在底层堆积的积木等 首先用一个二维数组$area[M][N]$来表示$M*N$的游戏区域,其中,数组中值为0表示没有积木块,1表示有积木块 积木块也用数组表示,但是由于积木块的尺寸不同,并且
阅读全文
摘要:1.13 NIM(3)两堆石头的游戏 基本问题:假设有两堆石子,两人轮流取石子,每次可以从一堆取任意个石子,或者从两堆取相等数量的任意个石子,但不能不取。若先把石子取光的一方为胜方,先取者有什么必胜策略? 解题思路:参考质数筛子法,先列举(10,10)所可能的情况,筛选掉所有安全局面(先取者必胜称为
阅读全文
摘要:1.9 高效率的安排见面会 基本问题:在校园招聘的季节里,为了能让学生们更好地了解微软亚洲研究院各研究组的情况,HR部门计划为每一个研究组举办一次见面会,让各个研究组的员工能跟学生相互了解和交流。已知有n位学生,他们分别对m个研究组中的若干个感兴趣。为了满足所有学生的要求,HR希望每个学生都能参加自
阅读全文
摘要:3.10 分层遍历二叉树 基本问题: 从上至下分层遍历二叉树 拓展问题 :从下至上分层遍历二叉树 All Coding // 3.10 分层遍历二叉树 import java.util.*; class Test{ static class TreeNode{ int val; TreeNode l
阅读全文
摘要:3.8 求二叉树中节点的最大距离 基本问题:写出一个程序求出一棵二叉树中相距最远的两个节点之间的距离 拓展问题:在代码中,我们使用了递归的办法来完成问题的求解,那么是否有非递归的算法来求解这个问题呢? 采用辅助的数据结构,使用栈 All Coding // 3.8 求二叉树中节点的最大距离 clas
阅读全文
摘要:4.10 数字哑谜和回文 基本问题 基本问题1:找出符合条件的九位数,每位数互不相同(1~9的某个排列),满足高n位能被n整除。例如abcdefghi,高两位ab能被2整除,高三位abc能被3整除,以此类推。 解法 解法1 :穷举9^9,然后使用剪枝避免不必要的运算。 解法2:逻辑推理 a 可取1~
阅读全文
摘要:4.4 点是否在三角形内 基础问题:如果在一个二维坐标系中,已知三角形三个点的坐标,那么对于坐标系中的任意一个点,如何判断该点是否在三角形内(点在三角形的边线上也认为在三角形内),假设三角形的三个点的坐标是ABC(逆时针顺序),需要判断点D是否在该三角形内。 解法: 解法1:利用面积 解法2:利用点
阅读全文
摘要:4.11 挖雷游戏的概率 基本题目 用户的第一次点击不会碰到任何地雷,程序在此之后随机放地雷。第二次点击的时候要小心了,可能遇雷身亡。这个游戏局面一共有16*16=256个方块,P(A),P(B),P(C)代表位置A,B,C中是地雷的概率,求此概率? 有两个雷的情况 \(C_{M-15}^{N-2}
阅读全文
摘要:1.4 买书问题 基本问题 在节假日的时候,书店一般都会做促销活动。由于《哈利波特》系列相当畅销,店长决定通过促销活动来回馈读者。上柜的《哈利波特》平装本系列中,一共有五卷。假设每一卷单独销售均需8欧元。如果读者一次购买不同的两卷,就可以扣除5%的费用,三卷则更多。假设具体折扣的情况如下 |本数|折
阅读全文
摘要:1.8 小飞的电梯调度问题 基本问题: 微软亚洲研究所所在的希格玛大厦一共有6部电梯。在高峰时间,每层都有人上下,电梯在每层都停。实习生小飞常常会被每层都停的电梯弄得很不耐烦,于是他提出了这样一个办法:由于楼层并不太高看没在繁忙的上下班时间,每层电梯从一层往上走时,我们只允许电梯停在其中的某一层。所
阅读全文
摘要:1.15 构造数独 解法: 先写出来一个数独,然后从里面删除一些元素即可。 写数独的方法主要有以下两种:
阅读全文

浙公网安备 33010602011771号