leetcode
qq_297604
这个作者很懒,什么都没留下…
展开
-
LC 剑指 Offer 64. 求 1 + 2 + … + n
剑指 Offer 64求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6示例 2:输入: n = 9输出: 45class Solution { public int sumNums(int n) { boolean flag = n > 1 && (n += sumNums(n-1)) > 0;原创 2020-11-20 09:49:51 · 168 阅读 · 0 评论 -
LC 剑指 Offer 68 - II. 二叉树的最近公共祖先
LC 剑指 Offer 68给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出: 3原创 2020-11-20 09:49:17 · 165 阅读 · 0 评论 -
LC 剑指 Offer 68 - I. 二叉搜索树的最近公共祖先
剑指 Offer 68给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]示例 1:输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8输出:原创 2020-11-20 09:48:57 · 164 阅读 · 0 评论 -
LC 剑指 Offer 38. 字符串的排列
LC 剑指 Offer 38输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s = "abc"输出:["abc","acb","bac","bca","cab","cba"]class Solution { List<String> res = new LinkedList<>(); char[] chs; public String[] permutation(St原创 2020-11-18 16:38:31 · 98 阅读 · 0 评论 -
LC 剑指 Offer 55 - II. 平衡二叉树
LC 剑指 Offer 55输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4] 1 / \ 2 2 / \ 3 3 / \ 4 4返回 fa原创 2020-11-18 16:19:58 · 151 阅读 · 0 评论 -
LC 剑指 Offer 35. 复杂链表的复制
LC 剑指 Offer 35请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。示例 1:输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]示例 2:输入:head = [[1,1],[2,1]]输出:[[1,1],[2,1]]原创 2020-11-17 10:13:53 · 378 阅读 · 0 评论 -
LC 剑指 Offer 54. 二叉搜索树的第 k 大节点
LC 剑指 Offer 54给定一棵二叉搜索树,请找出其中第k大的节点。示例 1:输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2输出: 4示例 2:输入: root = [5,3,6,2,4,null,null,1], k = 3 5 / \ 3 6 / \ 2 4 / 1输出: 4class Solution { int res, k;原创 2020-11-16 11:54:24 · 84 阅读 · 0 评论 -
LC 剑指 Offer 37. 序列化二叉树
LC 剑指 Offer 37请实现两个函数,分别用来序列化和反序列化二叉树。示例:你可以将以下二叉树: 1 / \ 2 3 / \ 4 5序列化为 “[1,2,3,null,null,4,5]”public class Codec { public String serialize(TreeNode root) { if(root == null) return "[]"; StringBuilder res = n原创 2020-11-16 11:53:28 · 212 阅读 · 0 评论 -
LC 剑指 Offer 36. 二叉搜索树与双向链表
LC 剑指 Offer 36输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。特别地,我们希望可以就地完成转换操作。当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继。还需要返回链表中的第一个节点的指针。题解:包含三个要素排序链表: 节点原创 2020-11-16 08:14:50 · 106 阅读 · 0 评论 -
LC 剑指 Offer 34. 二叉树中和为某一值的路径
LC 剑指 Offer 34输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。示例:给定如下二叉树,以及目标和 sum = 22 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1返回 :[ [5,4,11,2], [5,8,4,5]]代码:转载 2020-11-16 08:13:11 · 76 阅读 · 0 评论 -
LC 剑指 Offer 13. 机器人的运动范围
LC 剑指 Offer 13地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?示例 1:输入:m = 2, n = 3, k = 1输出:3示原创 2020-11-03 09:07:07 · 198 阅读 · 0 评论 -
LC 剑指 Offer 46. 把数字翻译成字符串
LC 剑指 Offer 46给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"class Solution { public int translateN原创 2020-11-03 08:24:23 · 147 阅读 · 0 评论 -
LC 剑指 Offer 49. 丑数
LC 剑指 Offer 49我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明:1 是丑数。n 不超过1690。题解丑数的递推性质: 丑数只包含因子2,3,5 ,因此有 “丑数 = 某较小丑数 × 某因子” (例如:10=5×2)。class Solution { public原创 2020-10-29 16:26:48 · 68 阅读 · 0 评论 -
LC 剑指 Offer 67. 把字符串转换成整数
LC 剑指 Offer 67. 把字符串转换成整数LC 剑指 Offer 67写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,原创 2020-10-28 15:24:16 · 115 阅读 · 0 评论 -
LC 剑指 Offer 59 - I. 滑动窗口的最大值
LC 剑指 Offer 59 - I. 滑动窗口的最大值LC 剑指 Offer 59给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7]解释:滑动窗口的位置 最大值[1 3 -1] -3 5 3 6 7 31 [3 -1 -3] 5 3 6 7原创 2020-10-27 15:56:06 · 92 阅读 · 0 评论 -
LC 剑指 Offer 30. 包含 min 函数的栈
LC 剑指 Offer 30. 包含 min 函数的栈LC 剑指 Offer 30定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.min(); --> 返回 -3.minStack.p原创 2020-10-27 15:07:48 · 118 阅读 · 0 评论 -
LC 剑指 Offer 20. 表示数值的字符串
剑指 Offer 20. 表示数值的字符串lc 剑指offer20请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、“5e2”、"-123"、“3.1416”、"-1E-16"、“0123"都表示数值,但"12e”、“1a3.14”、“1.2.3”、"±5"及"12e+5.4"都不是。题解class Solution { public boolean isNumber(String s) { //标记是否遇到相应情况 boo原创 2020-10-26 15:02:14 · 172 阅读 · 0 评论