随笔分类 -  面试

摘要:1. 平衡二叉树 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 解: 要么是一颗空树,要么左右子树都是平衡二叉树且左右子树深度之差不超过1 1 # class TreeNode: 2 # def __init__(self, x): 3 # self.val = x 4 # self.left = 阅读全文
posted @ 2019-09-09 15:57 王朝君BITer 阅读(240) 评论(0) 推荐(0)
摘要:1.圆圈中最后剩下的数 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可 阅读全文
posted @ 2019-09-01 17:18 王朝君BITer 阅读(268) 评论(0) 推荐(0)
摘要:1. 表示数值的字符串 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。 解: 思考方向应该是把非法 阅读全文
posted @ 2019-08-31 23:49 王朝君BITer 阅读(356) 评论(0) 推荐(0)
摘要:1. 斐波那契数列 解: 没啥好说的了,直接上高效的滚动迭代解法。矩阵解法和特征根解法这里不讨论了。 2. 跳台阶 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 解: 这题其实就是斐波那契数列。写一下暴力递归之外的解法。 递归 阅读全文
posted @ 2019-08-31 15:04 王朝君BITer 阅读(236) 评论(0) 推荐(0)
摘要:在对问题的解空间树进行搜索的方法中,一个结点有多次机会成为活结点的是? 回溯,dfs显然可以回退到track的上一个点。分支界限法就是bfs,一个节点就遍历一次。 用俩个栈模拟实现一个队列,如果栈的容量分别是O和P(O>P),那么模拟实现的队列最大容量是多少? 2P+1。大容量的栈A用于存储,小容量 阅读全文
posted @ 2019-08-25 16:10 王朝君BITer 阅读(438) 评论(0) 推荐(0)
摘要:200.岛屿数量 https://leetcode-cn.com/problems/number-of-islands/ 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围 阅读全文
posted @ 2019-08-20 23:12 王朝君BITer 阅读(415) 评论(0) 推荐(0)
摘要:191. 位1的个数 https://leetcode-cn.com/problems/number-of-1-bits/ 编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。 提示: 请注意,在某些语言(如 Java)中,没有无符号整数类型。在这 阅读全文
posted @ 2019-08-19 10:28 王朝君BITer 阅读(289) 评论(0) 推荐(0)
摘要:70. 爬楼梯 https://leetcode-cn.com/problems/climbing-stairs/ 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 解: 暴力,如果只有一阶,就只有 阅读全文
posted @ 2019-08-16 18:01 王朝君BITer 阅读(577) 评论(0) 推荐(0)
摘要:69. x的平方根 https://leetcode-cn.com/problems/sqrtx/ 实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 解: 二分,不断枚举可能的结果,判断其平方 阅读全文
posted @ 2019-08-16 16:30 王朝君BITer 阅读(138) 评论(0) 推荐(0)
摘要:51. N皇后 https://leetcode-cn.com/problems/n-queens/ n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。 每一种解法包含一个明确的 n 皇后问题的 阅读全文
posted @ 2019-08-16 12:36 王朝君BITer 阅读(367) 评论(0) 推荐(0)
摘要:102. 二叉树的层次遍历 https://leetcode-cn.com/problems/binary-tree-level-order-traversal/ 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 解: 利用队列实现bfs,从根节点开始入队,如果左右子 阅读全文
posted @ 2019-08-15 20:42 王朝君BITer 阅读(457) 评论(0) 推荐(0)
摘要:122. 买卖股票的最佳时机ii https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/ 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多 阅读全文
posted @ 2019-08-15 17:26 王朝君BITer 阅读(227) 评论(0) 推荐(0)
摘要:50. Pow(x, n) https://leetcode-cn.com/problems/powx-n/ 实现 pow(x, n) ,即计算 x 的 n 次幂函数。 说明: -100.0 < x < 100.0 n 是 32 位有符号整数,其数值范围是 [−231, 231 − 1] 。 解: 阅读全文
posted @ 2019-08-15 12:00 王朝君BITer 阅读(299) 评论(0) 推荐(0)
摘要:98. 验证二叉搜索树 https://leetcode-cn.com/problems/validate-binary-search-tree/ 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点 阅读全文
posted @ 2019-08-14 23:17 王朝君BITer 阅读(215) 评论(0) 推荐(0)
摘要:136. 只出现一次的数字 https://leetcode-cn.com/problems/single-number/ 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 阅读全文
posted @ 2019-08-14 17:52 王朝君BITer 阅读(446) 评论(0) 推荐(0)
摘要:20. 有效的括号 https://leetcode-cn.com/problems/valid-parentheses/ 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合 阅读全文
posted @ 2019-08-13 23:03 王朝君BITer 阅读(310) 评论(0) 推荐(0)
摘要:常见双指针技巧用法,只总结思路,具体边界判定想不清楚的时候稍微画个图就行了 1. 快慢指针判断链表是否含有环、环入口(快慢指针再次相遇即有环;再从头节点和快慢指针的相遇位置同速度向后,相遇点即为环入口)。 2. 快慢指针找链表中点、倒数第k个元素(快指针到达 Null 时慢指针所处位置即为中点;快指 阅读全文
posted @ 2019-08-13 20:55 王朝君BITer 阅读(306) 评论(0) 推荐(0)
摘要:1. 链表中环的入口节点 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 思路一:用哈希表存已经遍历过的节点,O(1)复杂度查找,如果再次遇到就是环入口 思路二:快慢指针 2. 删除链表中重复的节点 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点 阅读全文
posted @ 2019-08-04 23:57 王朝君BITer 阅读(185) 评论(0) 推荐(0)