
剑指offer
剑指offer
镇长1998
菜鸟升级。
展开
-
Acwing 1048. 鸡蛋的硬度
最近XX公司举办了一个奇怪的比赛:鸡蛋硬度之王争霸赛。参赛者是来自世界各地的母鸡,比赛的内容是看谁下的蛋最硬,更奇怪的是XX公司并不使用什么精密仪器来测量蛋的硬度,他们采用了一种最老土的办法–从高度扔鸡蛋–来测试鸡蛋的硬度,如果一次母鸡下的蛋从高楼的第a层摔下来没摔破,但是从a+1层摔下来时摔破了,那么就说这只母鸡的鸡蛋的硬度是a。你当然可以找出各种理由说明这种方法不科学,比如同一只母鸡下...原创 2020-03-17 22:53:21 · 198 阅读 · 0 评论 -
Acwing 756. 蛇形矩阵
输入两个整数n和m,输出一个n行m列的矩阵,将数字 1 到 n*m 按照回字蛇形填充至矩阵中。具体矩阵形式可参考样例。输入格式输入共一行,包含两个整数n和m。输出格式输出满足要求的矩阵。矩阵占n行,每行包含m个空格隔开的整数。数据范围1≤n,m≤100输入样例:3 3输出样例:1 2 38 9 47 6 5定义四个方向,沿着一个方向...原创 2020-03-15 23:43:12 · 363 阅读 · 0 评论 -
剑指offer 49 LeetCode 264 Acwing 62. 丑数
我们把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。求第n个丑数的值。样例输入:5输出:5注意:习惯上我们把1当做第一个丑数。class Solution {public: int getUglyNumber(int n) { vector<int> q; ...原创 2019-09-14 18:17:27 · 229 阅读 · 0 评论 -
剑指offer 53(题目三) Acwing 69. 数组中数值和下标相等的元素
假设一个单调递增的数组里的每个元素都是整数并且是唯一的。请编程实现一个函数找出数组中任意一个数值等于其下标的元素。例如,在数组[-3, -1, 1, 3, 5]中,数字3和它的下标相等。样例输入:[-3, -1, 1, 3, 5]输出:3注意:如果不存在,则返回-1。单调递增的数组里的每个元素都是整数并且是唯一的 ---> 这句话就足够说明这是道用二分查找做...原创 2019-09-14 15:01:45 · 190 阅读 · 0 评论 -
剑指offer 23 Acwing 34. 链表中环的入口结点
给定一个链表,若其中包含环,则输出环的入口节点。若其中不包含环,则输出null。样例给定如上所示的链表:[1, 2, 3, 4, 5, 6]2注意,这里的2表示编号是2的节点,节点编号从0开始。所以编号是2的节点就是val等于3的节点。则输出环的入口节点3.采用hash的方式,将遍历过的结点的指针都记录下来,当出现重复的时候就是环的入口节点。class So...原创 2019-09-14 14:22:00 · 157 阅读 · 0 评论 -
剑指offer 57(2) Acwing 76. 和为S的连续正数序列
输入一个正数s,打印出所有和为s的连续正数序列(至少含有两个数)。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以结果打印出3个连续序列1~5、4~6和7~8。样例输入:15输出:[[1,2,3,4,5],[4,5,6],[7,8]]双指针算法解题class Solution {public: vector<vector<in...原创 2019-09-14 11:49:40 · 136 阅读 · 0 评论 -
剑指offer 33 Acwing 46 二叉搜索树的后序遍历序列
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。样例输入:[4, 8, 6, 12, 16, 14, 10]输出:true每次将数组分成左右子树的后序遍历对应的数组[st,i - 1] [i,ed] ,然后递归判断符不符合即可。class Solution {pub...原创 2019-09-13 17:22:13 · 106 阅读 · 0 评论 -
剑指offer 43 Acwing 68. 0到n-1中缺失的数字
一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0到n-1之内。在范围0到n-1的n个数字中有且只有一个数字不在该数组中,请找出这个数字。样例输入:[0,1,2,4]输出:3二分查找: 在缺失点的左边都满足 a[x] == x 在缺失点的右边都满足 a[x] != x 具有二分的特性还有一点特殊的地方: 如果缺失的点在最后一个的话,那么就需要...原创 2019-09-13 01:42:26 · 116 阅读 · 0 评论 -
剑指offer 68 Acwing 88 LeetCode 236. 二叉树的最近公共祖先
对于一般树找其最近父节点,如果两个节点在某个节点的两侧,那么这个节点就是要求的最近父节点。否则要么在左子树中,要么在右子树中。class Solution: def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode': if root ...原创 2019-07-14 19:22:53 · 95 阅读 · 0 评论 -
剑指offer 31 Acwing 42. 栈的压入、弹出序列
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。注意:若两个序列长度不等则视为并不是一个栈的压入、弹出序列。若两个序列都为空,则视为是一个栈的压入、弹出序列。样例...原创 2019-09-12 13:00:35 · 148 阅读 · 0 评论 -
剑指offer 52 Acwing 66. 两个链表的第一个公共结点
输入两个链表,找出它们的第一个公共结点。当不存在公共节点时,返回空节点。样例给出两个链表如下所示:A: a1 → a2 ↘ c1 → c2 → c3 ↗ B: b1 → b2 → b3输出第一个公共节点c1这道...原创 2019-09-10 20:59:49 · 143 阅读 · 0 评论 -
剑指offer 28 Leetcode 101. 对称二叉树
给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[1,2,2,3,4,4,3]是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个[1,2,2,null,3,null,3]则不是镜像对称的: 1 / \ 2 2 \ \ 3 3说明:如果你可以运用递归和迭代两种方法解...原创 2018-09-29 20:33:54 · 142 阅读 · 0 评论 -
剑指offer 58 Acwing 77. 翻转单词顺序
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student.",则输出"student. a am I"。样例输入:"I am a student."输出:"student. a am I"双指针实现将单词从string句子中剥离出来,stack栈负责实现倒序我想说一句这标点符...原创 2019-09-09 17:36:25 · 122 阅读 · 0 评论 -
剑指offer 54 Acwing 70 . 二叉搜索树的第k个结点
给定一棵二叉搜索树,请找出其中的第k小的结点。你可以假设树和k都存在,并且1≤k≤树的总结点数。样例输入:root = [2, 1, 3, null, null, null, null] ,k = 3 2 / \ 1 3输出:3思路就是中序遍历,但是这道题写的时候,却踩了坑。。。。本来在这个地方我是这样写的: if (node....原创 2019-09-09 16:39:10 · 133 阅读 · 0 评论 -
剑指offer 15 . Acwing 26. 二进制中1的个数
输入一个32位整数,输出该数二进制表示中1的个数。注意:负数在计算机中用其绝对值的补码来表示。样例1输入:9输出:2解释:9的二进制表示是1001,一共有2个1。样例2输入:-2输出:31解释:-2在计算机里会被表示成11111111111111111111111111111110, 一共有31个1。x = x & (x - 1) 每...原创 2019-09-05 11:20:56 · 115 阅读 · 0 评论 -
剑指offer 8 . Acwing 19. 二叉树的下一个节点
给定一棵二叉树的其中一个节点,请找出中序遍历序列的下一个节点。注意:如果给定的节点是中序遍历序列的最后一个,则返回空节点; 二叉树一定不为空,且给定的节点一定不是空节点;样例假定二叉树是:[2, 1, 3, null, null, null, null], 给出的是值等于2的节点。则应返回值等于3的节点。解释:该二叉树的结构如下,2的后继节点是3。 2 / \1 ...原创 2019-09-04 23:48:39 · 190 阅读 · 0 评论 -
剑指offer 6 . Acwing 17. 从尾到头打印链表
输入一个链表的头结点,按照从尾到头的顺序返回节点的值。返回的结果用数组存储。样例输入:[2, 3, 5]返回:[5, 3, 2]????https://www.acwing.com/problem/content/18//** * Definition for singly-linked list. * struct ListNode { * int va...原创 2019-09-04 22:23:02 · 157 阅读 · 0 评论 -
剑指offer 13 . 机器人的运动范围
地上有一个m行和n列的方格,横纵坐标范围分别是0∼m−1和0∼n−1。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格。但是不能进入行坐标和列坐标的数位之和大于k的格子。请问该机器人能够达到多少个格子?样例1输入:k=7, m=4, n=5输出:20样例2输入:k=18, m=40, n=40输出:1484...原创 2019-09-05 10:32:55 · 146 阅读 · 0 评论