![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
程序员面试金典
文章平均质量分 68
Xd
这个作者很懒,什么都没留下…
展开
-
程序员面试金典---5.8 绘制直线(leetcode)
目录题目:绘制直线一、思路二、解法1.单独处理头尾法题目:绘制直线绘制直线。有个单色屏幕存储在一个一维数组中,使得32个连续像素可以存放在一个 int 里。屏幕宽度为w,且w可被32整除(即一个 int 不会分布在两行上),屏幕高度可由数组长度及屏幕宽度推算得出。请实现一个函数,绘制从点(x1x_1x1, y)到点(x2x_2x2, y)的水平线。给出数组的长度 length,宽度 w(以比特为单位)、直线开始位置 x1x_1x1(比特为单位)、直线结束位置 x2x_2x2(比特为单位)、直线原创 2021-11-21 14:51:49 · 503 阅读 · 0 评论 -
程序员面试金典---5.4 下一个数
目录题目:下一个数一、思路二、解法1.位操作法:题目:下一个数给定一个正整数,找出与其二进制表达式中 1 的个数相同且大小最接近的那两个数(一个略大,一个略小)(比该数大且最接近的数 和 比该数小且最接近的数)一、思路1.蛮力法:在n的二进制表示中,数出1的个数,然后增加或减小,直至找到1的个数相同的数字。2.位操作法:取得后一个较大的数现在给定一个数n和两个位置i和j,假设将位i从1翻转为0,位j从0翻转成1。若i>j,n就会减小;若i<j,n则会变大。结论:若将某个0翻原创 2021-11-17 21:53:15 · 345 阅读 · 0 评论 -
程序员面试金典---5.2二进制转字符串
目录题目:二进制转字符串一、思路二、解法1.乘2法题目:二进制转字符串给定一个介于 0 和 1 之间的实数(如 0.72),类型为 double,打印它的二进制表达式。如果该数字无法精确地用 32 位以内的二进制表示,则打印“ERROR”。一、思路用X2X_2X2和X10X_{10}X10来表示X是二进制还是十进制。非整数用二进制表示是与十进制相仿,二进制数0.1012表示如下0.1012=1∗1/21+0∗1/22+1∗1/230.101_2 = 1*1/2^1 + 0*1/2^2 + 1*原创 2021-11-15 12:26:30 · 65 阅读 · 0 评论 -
程序员面试金典 --- 4.12求和路径
目录题目:求和路径一、思路二、解法1.蛮力法2.优化解法1题目:求和路径给定一棵二叉树,其中每个节点都含有一个整数数量(该值或正或负)。设计一个算法,打印节点数值总和等于某个给定值的所有路径(求路径数量!)。注意,路径不一定非得从二叉树得根节点或叶节点开始或结束,但是某方向必须向下(只能从父节点指向子节点方向)。一、思路1.先用蛮力法解决,只需要查看所有可能得路径。遍历每个节点,用递归法尝试所有向下的路径。并随着递归的进行跟踪路径的和。每当发现路径和等于目标和,答案就+1;用时O(NlogN) 每原创 2021-11-11 17:44:39 · 297 阅读 · 0 评论 -
程序员面试金典 --- 4.11随机节点
目录题目:随机节点一、思路二、解法1.选项32.选项4题目:随机节点你现在要从头开始实现一个二叉树类,该类除了插入(insert)、查找 (find)和删除(delete)方法外,需要实现 getRandomNode()方法用于返回树中的任意节点。该方法应该以相同的概率选择任意的节点。设计并实现 getRandomNode 方法并解释如何实现其他方法。一、思路需要注意到此题使用了一种十分有趣的描述方式:面试官并不是简单地说:“请设计一个算法,从二叉树中返回一个随机节点。”此题要求我们从零开始实原创 2021-11-10 16:53:39 · 607 阅读 · 0 评论 -
程序员面试金典 --- 4.7编译顺序
目录题目:编译顺序一、思路二、解法1.迭代法2.深度优先搜索法题目:编译顺序给你一个系列的项目project和一系列依赖关系(依赖关系dependencies为一个链表,其中每一个元素为两个项目的编组,且第二项目依赖于第一个项目)。所有项目的依赖项必须在该项目被编译前编译。请找出可以使得所有项目顺利编译的顺序。如果没有合法的编译顺序,返回错误。示例:输入:projects:a,b,c,d,e,fdependencies:(a,b),(f,b),(b,d),(f,a),(d,c)输出:f,e原创 2021-11-04 17:44:27 · 203 阅读 · 0 评论