随笔分类 -  剑指offer

算法学习
摘要:题目链接:https://leetcode-cn.com/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof/ 双指针 class Solution { public: vector<int> exch 阅读全文
posted @ 2020-04-19 13:54 NaughtyCoder 阅读(88) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode-cn.com/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof/ 思路 只关心最终活着的那个人的序号变化,从编号(索引值)的角度考虑; 从8个人开始,每次杀一个人,去掉被杀的人,然后把杀掉的 阅读全文
posted @ 2020-04-19 13:30 NaughtyCoder 阅读(130) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode-cn.com/problems/he-wei-sde-lian-xu-zheng-shu-xu-lie-lcof/ 双指针 [l,r]的区间和:s = (l + r) * (r - l + 1) / 2 通过利用l和r两个指针,初始l=1,r=2; 如果s 阅读全文
posted @ 2020-04-19 11:53 NaughtyCoder 阅读(73) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode-cn.com/problems/he-wei-sde-liang-ge-shu-zi-lcof/ 双指针(对撞指针) 时间复杂度:O(n) 空间复杂度:O(1) 用i和j分别指向数组头和尾,sum = nums[i] + nums[j] 如果sum > t 阅读全文
posted @ 2020-04-19 11:10 NaughtyCoder 阅读(105) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode-cn.com/problems/xu-lie-hua-er-cha-shu-lcof/ 递归 前序遍历序列化成字符串,在反序列化回去 注意:不要忘记null和数字后面空格,空格作为分隔两个节点的标识 时间复杂度:O(n) 空间复杂度:O(n) /** * 阅读全文
posted @ 2020-04-17 08:36 NaughtyCoder 阅读(78) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode cn.com/problems/er cha shu zhong he wei mou yi zhi de lu jing lcof/ 递归+回溯 遍历一遍树的节点,沿节点依次向下递增,回溯的时候,记得恢复现场 阅读全文
posted @ 2020-04-16 19:24 NaughtyCoder 阅读(74) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode-cn.com/problems/er-cha-shu-de-zui-jin-gong-gong-zu-xian-lcof/ 找两个节点的最低公共祖先,递归去找 1. 第一种情况,左右子树都有p和q,当前节点为他们的公共祖先 2. 第二种情况,左子树有或者右 阅读全文
posted @ 2020-04-12 09:06 NaughtyCoder 阅读(71) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-zui-jin-gong-gong-zu-xian-lcof/ 利用二叉搜索树的性质,左子树都比根节点小,右子树都比根节点大;从根节点开始进行比较, 两个节点比根节点的值都大 最低 阅读全文
posted @ 2020-04-12 08:47 NaughtyCoder 阅读(116) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode-cn.com/problems/er-cha-shu-de-shen-du-lcof/ DFS(递归法) /** * Definition for a binary tree node. * struct TreeNode { * int val; * T 阅读全文
posted @ 2020-04-11 23:04 NaughtyCoder 阅读(82) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-di-kda-jie-dian-lcof/ 递归 中序遍历的二叉搜索树序列为单调递增的序列,将中序遍历的结果放到vector中,第k大的数为v.size()-k位置的数 /** * 阅读全文
posted @ 2020-04-11 22:44 NaughtyCoder 阅读(86) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode-cn.com/problems/fan-zhuan-dan-ci-shun-xu-lcof/ 剑指offer 时间复杂度:O(n) 空间复杂度:O(1) class Solution { public: string reverseWords(string 阅读全文
posted @ 2020-04-09 22:06 NaughtyCoder 阅读(103) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-iii-lcof/ BFS 使用双端队列,始终维持一头进一头出的状态,不然就乱了; 用res的大小来标志奇偶行; 偶数行,从左到右,前取后放 奇数行, 阅读全文
posted @ 2020-04-09 21:52 NaughtyCoder 阅读(83) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-ii-lcof/ 队列(BFS) 与I类似,要按层打印,所以每次先获取队列的长度,这个长度即为该层元素的个数,然后将其保存到数组中,依次将其左右节点压 阅读全文
posted @ 2020-04-09 21:09 NaughtyCoder 阅读(93) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof/ 迭代法(BFS) 使用队列,先将根入队,当队列不空时进行如下操作: 获取队首元素,队首元素出栈 将其插入res数组中 如果左孩子或右孩子不 阅读全文
posted @ 2020-04-08 22:18 NaughtyCoder 阅读(122) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode-cn.com/problems/dui-cheng-de-er-cha-shu-lcof/ 递归 判断A的右子树和B的左子树是否对称 判断A的左子树和B的右子树是否对称 递归终止条件 1. 都为空指针,返回true 2. 只有一个为空,返回false 3. 阅读全文
posted @ 2020-04-08 20:48 NaughtyCoder 阅读(87) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode-cn.com/problems/er-cha-shu-de-jing-xiang-lcof/ 递归 递归的先序遍历二叉树,交换每个节点的左右子节点,即可生成二叉树的镜像 /** * Definition for a binary tree node. * 阅读全文
posted @ 2020-04-08 20:33 NaughtyCoder 阅读(73) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode-cn.com/problems/shu-de-zi-jie-gou-lcof/ 递归 从根节点开始递归判断A和B的节点是不是相等; 1) 如果A或B为空,则返回false 2) 否则,使用isSame依次判断A和B中节点是否相等 3)不相等,递归判断A的左 阅读全文
posted @ 2020-04-07 20:41 NaughtyCoder 阅读(80) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode cn.com/problems/zhong jian er cha shu lcof/submissions/ 哈希+ 递归 使用哈希表map记录中序遍历每个元素的位置 利用性质: 1. 先序遍历的第一个节点是根节点 2. 中序遍历的根节点的左边是左子树, 阅读全文
posted @ 2020-04-07 19:57 NaughtyCoder 阅读(107) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode cn.com/problems/shan chu lian biao de jie dian lcof/ 双指针 创建一个值为0的头结点,然后利用两个指针同时向前移动,判断第二个指针节点的值是否等于val; 阅读全文
posted @ 2020-04-06 21:40 NaughtyCoder 阅读(105) 评论(0) 推荐(0)
摘要:题目链接:https://leetcode cn.com/problems/cong wei dao tou da yin lian biao lcof/ 改变链表 先逆置链表,然后将结果保存到数组中 reverse 依次将链表保存到数组中,然后逆置数组 栈 依次遍历链表并入栈,然后栈中元素依次弹到 阅读全文
posted @ 2020-04-06 21:25 NaughtyCoder 阅读(92) 评论(0) 推荐(0)