07 2020 档案

摘要:剑指Offer_#7_重建二叉树 Contents 题目思路分析整体思路递归函数其他细节解答代码1代码2:进一步优化代码复杂度分析 题目 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如,给出 前序遍历 preorder = [3, 阅读全文
posted @ 2020-07-31 19:48 Howfar's 阅读(220) 评论(0) 推荐(0)
摘要:剑指Offer_#6_从尾到头打印链表剑指offerContents题目思路分析方法1:辅助栈方法2:递归算法流程解答解答1:辅助栈复杂度分析解答2:递归复杂度分析 题目输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 stack = new Stack(); while(head !=... 阅读全文
posted @ 2020-07-31 16:48 Howfar's 阅读(322) 评论(0) 推荐(0)
摘要:剑指Offer_#5_替换空格剑指offerContents题目思路分析思路方法1:char数组方法2:StringBuilder解答解答1:char数组复杂度分析解答2:StringBuilder复杂度分析 题目请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."限制:0 <= s 的长... 阅读全文
posted @ 2020-07-31 16:16 Howfar's 阅读(301) 评论(0) 推荐(0)
摘要:剑指Offer_#4_二维数组中的查找剑指offerContents题目思路分析方法1:暴力搜索方法2:从右上角(左下角)开始查找解答解答1:暴力搜索复杂度分析关于数组和null解答2:从右上角开始查找复杂度分析 题目在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整... 阅读全文
posted @ 2020-07-30 19:10 Howfar's 阅读(246) 评论(0) 推荐(0)
摘要:剑指Offer_#3_数组中重复的数字剑指offer Contents 题目思路分析方法1:使用HashSet或HashMap方法2:原地交换数组元素方法3:排序后比较相邻元素解答解答1:使用HashSet复杂度分析关于HashSet解答2:原地交换数组元素复杂度分析解答3:排序后比较相邻元素复杂度 阅读全文
posted @ 2020-07-30 17:38 Howfar's 阅读(222) 评论(0) 推荐(0)
摘要:剑指Offer_#68-I_二叉搜索树的最近公共祖先剑指offerContents题目思路分析最近公共祖先算法流程解答解答1:迭代复杂度分析解答2:递归复杂度分析 题目给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以... 阅读全文
posted @ 2020-07-29 19:35 Howfar's 阅读(136) 评论(0) 推荐(0)
摘要:剑指Offer_#66_构建乘积数组剑指offerContents题目思路分析用除法的解法不用除法的解法解答解答1:较直观的写法复杂度分析解答2:优化空间复杂度复杂度分析 题目给定一个数组 A[0,1,…,n-1],请构建一个数组 B[0,1,…,n-1],其中 B 中的元素 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。示例:输入: [1,2,... 阅读全文
posted @ 2020-07-29 19:18 Howfar's 阅读(152) 评论(0) 推荐(0)
摘要:剑指Offer_#65_不用加减乘除做加法剑指offerContents题目思路分析解答复杂度分析 题目写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。示例:输入: a = 1, b = 1输出: 2提示:a, b 均可能是负数或 0结果不会溢出 32 位整数 思路分析又是一道脑筋急转弯的题目。不能用加减乘除运算,就只能用二进制位运算了。思路... 阅读全文
posted @ 2020-07-29 18:29 Howfar's 阅读(167) 评论(0) 推荐(0)
摘要:剑指Offer_#64_求1+2+…+n剑指offerContents题目思路分析方法1:等差数列求和公式方法2:迭代累加方法3:递归方法4:利用&&运算符的短路效应终止递归解答复杂度分析 题目求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6示例 2:输入: n ... 阅读全文
posted @ 2020-07-29 18:00 Howfar's 阅读(126) 评论(0) 推荐(0)
摘要:剑指Offer_#63_股票的最大利润剑指offerContents题目思路分析暴力搜索优化算法解答 题目假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。 注意利润不能是 ... 阅读全文
posted @ 2020-07-29 17:45 Howfar's 阅读(175) 评论(0) 推荐(0)
摘要:剑指Offer_#62_圆圈中最后剩下的数字剑指offerContents题目思路分析方法1:模拟法方法2:数学公式法解答解答1:模拟法复杂度分析解答2:数学公式法复杂度分析 题目0,1,,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数... 阅读全文
posted @ 2020-07-28 16:01 Howfar's 阅读(207) 评论(0) 推荐(0)
摘要:剑指Offer_#61_扑克牌中的顺子剑指offer Contents 题目思路分析顺子的判断方法方法1:比较0的个数与间隔个数方法2:HashSet方法解答解答1:比较0的个数和间隔的个数复杂度分析解答2:利用HashSet判断重复复杂度分析 题目 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这 阅读全文
posted @ 2020-07-28 11:49 Howfar's 阅读(199) 评论(0) 推荐(0)
摘要:剑指Offer_#59-II_队列的最大值Contents题目思路分析解答复杂度分析 题目请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。若队列为空,pop_front 和 max_value 需要返回 -1示例 1:输入: ["MaxQueue","push_back","... 阅读全文
posted @ 2020-07-27 18:00 Howfar's 阅读(120) 评论(0) 推荐(0)
摘要:剑指Offer_#59-I_滑动窗口的最大值(LeetCode#239)剑指offer Contents 题目方法1:双端队列解答1:双端队列复杂度分析方法2:大根堆(优先队列)严格维护滑动窗口优化的代码(避免使用remove())复杂度分析方法3:分块求前缀最大值及后缀最大值复杂度分析 题目 给定 阅读全文
posted @ 2020-07-27 13:37 Howfar's 阅读(152) 评论(0) 推荐(0)
摘要:剑指Offer_#58 - I. 翻转单词顺序剑指offerContents题目思路分析解答解答1:split()分词复杂度分析解答2:双指针遍历分词(从后向前)复杂度分析 题目输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I"。示例 1:输入: "... 阅读全文
posted @ 2020-07-27 11:18 Howfar's 阅读(177) 评论(0) 推荐(0)
摘要:剑指Offer_#68-II_二叉树的最近公共祖先剑指offerContents题目思路分析最近公共祖先思路1:递归后序遍历终止条件递推过程返回值思路2:到p,q的路径的最后共同节点解答解答1:递归后序遍历复杂度分析解答2:到p,q的路径的最后共同节点复杂度分析 题目给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最... 阅读全文
posted @ 2020-07-26 18:15 Howfar's 阅读(212) 评论(0) 推荐(0)
摘要:剑指Offer_#67_把字符串转换成整数剑指offerContents题目思路分析解答复杂度分析 题目写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号... 阅读全文
posted @ 2020-07-26 15:34 Howfar's 阅读(169) 评论(0) 推荐(0)
摘要:剑指Offer_#57_和为s的两个数字剑指offerContents题目思路分析解答复杂度分析 题目输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。示例 1:输入:nums = [2,7,11,15], target = 9输出:[2,7] 或者 [7,2]示例 2:输入:nums = [10,26,30,31,47... 阅读全文
posted @ 2020-07-25 22:57 Howfar's 阅读(137) 评论(0) 推荐(0)
摘要:剑指Offer_#60_n个骰子的点数剑指offer Contents 题目思路分析可以观察到的规律方法1:递归方法2:动态规划解答解法1:递归解法2:动态规划解法3:进一步精简代码 题目 把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。 你需要用一个浮 阅读全文
posted @ 2020-07-25 01:49 Howfar's 阅读(211) 评论(0) 推荐(0)
摘要:剑指Offer_#56-II_ 数组中数字出现的次数II剑指offerContents题目思路分析算法流程解答复杂度分析 题目在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。示例 1:输入:nums = [3,4,3,3]输出:4示例 2:输入:nums = [9,1,7,9,7,9,7]输出:1限制:1 >= 1; }... 阅读全文
posted @ 2020-07-23 12:10 Howfar's 阅读(152) 评论(0) 推荐(0)
摘要:剑指Offer_#56-I_数组中数字出现的次数剑指offerContents题目思路分析异或运算的性质算法流程解答复杂度分析 题目一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。示例 1:输入:nums = [4,1,4,6]输出:[1,6] 或 [6,1]示例 2:输入:nums = [1,... 阅读全文
posted @ 2020-07-23 11:48 Howfar's 阅读(139) 评论(0) 推荐(0)
摘要:剑指Offer_#55 - II_平衡二叉树(LeetCode#110)剑指offerContents题目思路分析递归 vs 分治解答方法1:普通递归(自顶向下)算法流程解答1:普通递归(自顶向下)复杂度分析方法2:分治法(提前阻断,自底向上)分治法模板算法设计解答2:分治法(提前阻断,自底向上)复杂度分析参考 题目输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右... 阅读全文
posted @ 2020-07-21 16:01 Howfar's 阅读(179) 评论(0) 推荐(0)
摘要:剑指Offer_#55 - I_二叉树的深度剑指offerContents题目思路分析方法1:自底向上方法2:自顶向下解答解答1:自底向上解答2:自顶向下 题目输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 ... 阅读全文
posted @ 2020-07-21 15:49 Howfar's 阅读(145) 评论(0) 推荐(0)
摘要:剑指Offer_#54_二叉搜索树的第k大节点剑指offerContents题目思路分析解答 题目给定一棵二叉搜索树,请找出其中第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 / \... 阅读全文
posted @ 2020-07-21 15:41 Howfar's 阅读(146) 评论(0) 推荐(0)
摘要:剑指Offer_#53 - II_0~n-1中缺失的数字剑指offerContents题目思路分析解答 题目一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。示例 1:输入: [0,1,3]输出: 2示例 2:输入: [0,1,2,3,4,5,6,7,9]输出: 8限制:1 <=... 阅读全文
posted @ 2020-07-21 15:31 Howfar's 阅读(167) 评论(0) 推荐(0)
摘要:剑指Offer_#53 - I_在排序数组中查找数字剑指offer Contents 题目思路分析解答1:循环解答2:剑指Offer写法 题目 统计一个数字在排序数组中出现的次数。 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 示例 2: 输入: 阅读全文
posted @ 2020-07-21 15:13 Howfar's 阅读(189) 评论(0) 推荐(0)
摘要:剑指Offer_#52_两个链表的第一个公共节点剑指offerContents题目思路分析解答复杂度分析 题目输入两个链表,找出它们的第一个公共节点。如下面的两个链表:在节点 c1 开始相交。注意:如果两个链表没有交点,返回 null.在返回结果后,两个链表仍须保持原有的结构。可假定整个链表结构中没有循环。程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。 思路分析这题的难点在于,... 阅读全文
posted @ 2020-07-19 17:51 Howfar's 阅读(155) 评论(0) 推荐(0)
摘要:剑指Offer_#51_数组中的逆序对剑指offer Contents 题目思路分析解答更加精简的代码 题目 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 示例 1: 输入: [7,5,6,4] 输出: 5 限制: 0 阅读全文
posted @ 2020-07-19 17:31 Howfar's 阅读(130) 评论(0) 推荐(0)
摘要:剑指Offer_#50_第一个只出现一次的字符剑指offer Contents 题目思路分析解答复杂度分析 题目 在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。 示例: s = "abaccdeff" 返回 "b" s = "" 返回 " " 限制: 0 阅读全文
posted @ 2020-07-18 15:22 Howfar's 阅读(114) 评论(0) 推荐(0)
摘要:剑指Offer_#49_丑数剑指offer Contents 题目思路分析丑数的定义理解:暴力循环递推(通过已有的丑数找到新的丑数)复杂度分析思考:为什么不会漏掉丑数,或者出现重复的丑数? 题目 我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 阅读全文
posted @ 2020-07-18 15:02 Howfar's 阅读(143) 评论(0) 推荐(0)
摘要:剑指Offer_#48_最长不含重复字符的子字符串剑指offerContents题目思路分析动态规划解答复杂度分析 题目请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b... 阅读全文
posted @ 2020-07-18 11:36 Howfar's 阅读(165) 评论(0) 推荐(0)
摘要:LeetCode_#62#63_不同路径剑指offerContentsLeetCode_#62_不同路径题目思路分析解答LeetCode_#63_不同路径II题目思路分析解答 LeetCode_#62_不同路径 题目一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finis... 阅读全文
posted @ 2020-07-17 16:22 Howfar's 阅读(164) 评论(0) 推荐(0)
摘要:LeetCode_#64_最小路径和剑指offerContents题目思路分析解答 题目给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。 思路分析本题与剑指Offer_... 阅读全文
posted @ 2020-07-17 16:06 Howfar's 阅读(143) 评论(0) 推荐(0)
摘要:剑指Offer_#47_礼物的最大价值剑指offerContents题目思路分析动态规划解析解答复杂度分析 题目在一个 m* n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?示例 1:输入: [ [1,3,1]... 阅读全文
posted @ 2020-07-17 15:58 Howfar's 阅读(149) 评论(0) 推荐(0)
摘要:剑指Offer_#46_把数字翻译成字符串剑指offerContents题目思路分析解答 题目给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译... 阅读全文
posted @ 2020-07-17 11:04 Howfar's 阅读(162) 评论(0) 推荐(0)
摘要:剑指Offer_#45_把数组排成最小的数剑指offerContents题目思路分析解答 题目输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。示例 1:输入: [10,2]输出: "102"示例 2:输入: [3,30,34,5,9]输出: "3033459"提示:0 y+x,判断为x>y,即a应该靠后;反之同理。如图 解答class Solu... 阅读全文
posted @ 2020-07-16 12:31 Howfar's 阅读(202) 评论(0) 推荐(0)
摘要:剑指Offer_#44_数字序列中某一位的数字剑指offerContents题目思路分析最直接的思路观察规律解答 题目数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。请写一个函数,求任意第n位对应的数字。注意:这里的题目和测试用例不同,测试用例中数字序列是从1开始不是从0开始,所以... 阅读全文
posted @ 2020-07-16 11:02 Howfar's 阅读(204) 评论(0) 推荐(0)
摘要:剑指Offer_#43_1~n整数中1出现的次数剑指offerContents题目思路分析一个结论:如何数出每一位出现1的次数?寻找规律,总结为数学表达式cur == 0cur == 1cur > 1循环变量的初始化和更新解答 题目输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。示例 1... 阅读全文
posted @ 2020-07-15 15:15 Howfar's 阅读(255) 评论(0) 推荐(0)
摘要:剑指Offer_#42_连续子数组的最大和剑指offerContents题目思路分析方法1:暴力搜索方法2:分析规律得到启发式的算法方法3:动态规划解答解法1:暴力搜索解法2:观察规律解法3:动态规划 题目输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入: nums = [-2,1,-3,4,-1... 阅读全文
posted @ 2020-07-15 11:52 Howfar's 阅读(172) 评论(0) 推荐(0)
摘要:剑指Offer_#41_ 数据流中的中位数剑指offerContents题目思路分析解答 题目如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。例如,[2,3,4] 的中位数是 3[2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一个支持以下两种操... 阅读全文
posted @ 2020-07-15 10:36 Howfar's 阅读(121) 评论(0) 推荐(0)
摘要:剑指Offer_#40_最小的k个数剑指offerContents题目思路分析方法1:利用快排中的切分partition()函数方法2:大根堆辅助(可用Java中的PriorityQueue实现)解答解法1:利用快排中的切分partition()函数复杂度分析解法2:大根堆辅助(可用Java中的PriorityQueue实现)复杂度分析 题目输入整数数组 arr ,找出其中最小的 k 个数。例... 阅读全文
posted @ 2020-07-14 15:58 Howfar's 阅读(149) 评论(0) 推荐(0)
摘要:剑指Offer_#39_数组中出现次数超过一半的数字剑指offerContents题目解答解法1:HashMap统计数字出现次数解法2:排序解法3:摩尔投票法 题目数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2限制:1 map = new ... 阅读全文
posted @ 2020-07-13 12:10 Howfar's 阅读(156) 评论(0) 推荐(0)
摘要:剑指Offer_#38_字符串的排列(LeetCode#47_全排列 II) Contents 题目思路分析全排列重复字符的处理方法1:交换元素方法2:全排列II方法3:HashSet暴力去重(不推荐)总结 题目 输入一个字符串,打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组, 阅读全文
posted @ 2020-07-12 19:11 Howfar's 阅读(185) 评论(0) 推荐(0)
摘要:剑指Offer_#37 序列化二叉树剑指offerContents题目思路分析题意分析思路解法1:层序遍历(BFS)解法2:前序遍历解答解答1:层序遍历解答2:前序遍历Java基础:值传递和引用传递 题目请实现两个函数,分别用来序列化和反序列化二叉树。示例: 你可以将以下二叉树: 1 / \ 2 3 / \ 4 5序列化为 "[1,2,3,null,null,... 阅读全文
posted @ 2020-07-11 15:37 Howfar's 阅读(173) 评论(0) 推荐(0)
摘要:剑指Offer_#36_二叉搜索树与双向链表剑指offerContents题目思路分析解答 题目输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。为了让您更好地理解问题,以下面的二叉搜索树为例:我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点,... 阅读全文
posted @ 2020-07-10 10:30 Howfar's 阅读(191) 评论(0) 推荐(0)
摘要:剑指Offer_#35_复杂链表的复制剑指offer Contents 题目思路分析方法1:哈希表方法2:原地修改链表解答解答1:哈希表复杂度分析解答2:原地修改链表复杂度分析TIP:避免链表迭代中的空指针异常解答3:代码优化 题目 请实现 copyRandomList 函数,复制一个复杂链表。在复 阅读全文
posted @ 2020-07-09 19:52 Howfar's 阅读(180) 评论(0) 推荐(0)
摘要:剑指Offer_#34_二叉树中和为某一值的路径剑指offer Contents 题目思路分析解答写法1:递减写法2:累加 题目 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。 示例: 给定如下二叉树,以及目标和 s 阅读全文
posted @ 2020-07-09 17:31 Howfar's 阅读(171) 评论(0) 推荐(0)
摘要:剑指Offer_#33_二叉搜索树的后续遍历剑指offer Contents 题目思路分析二叉搜索树(二叉查找树)思路算法流程解答1解答2 题目 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 参考 阅读全文
posted @ 2020-07-07 17:50 Howfar's 阅读(153) 评论(0) 推荐(0)
摘要:剑指Offer_#32_从上到下打印二叉树剑指offerContents剑指Offer32-I:不分行从上到下打印二叉树题目思路分析算法流程解答剑指Offer32-II:分行从上到下打印二叉树题目思路分析解答剑指Offer32-III:之字形从上到下打印二叉树题目思路分析解答这一题有三个变式,题目有细微差别. 剑指Offer32-I:不分行从上到下打印二叉树 题目从上到下打印出二叉树的每个节... 阅读全文
posted @ 2020-07-06 17:47 Howfar's 阅读(145) 评论(0) 推荐(0)
摘要:剑指Offer_#31_栈的压入、弹出序列剑指offerContents题目思路分析解答 题目输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。示例 1:输... 阅读全文
posted @ 2020-07-05 17:40 Howfar's 阅读(167) 评论(0) 推荐(0)
摘要:剑指Offer_#30_包含min函数的栈剑指offerContents题目思路分析各个函数的设计解答 题目定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(... 阅读全文
posted @ 2020-07-05 17:20 Howfar's 阅读(139) 评论(0) 推荐(0)
摘要:剑指Offer_#29_顺时针打印矩阵剑指offer Contents 题目思路分析解答1:剑指Offer书上的解答解答2:更简洁的代码 题目 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出 阅读全文
posted @ 2020-07-04 23:09 Howfar's 阅读(193) 评论(0) 推荐(0)
摘要:剑指Offer_#27_二叉树的镜像剑指offer Contents 题目思路分析算法流程方法1:递归方法2:迭代(栈辅助)算法流程解答1:递归代码1:分治写法,返回值为TreeNode代码2:常规递归写法,返回值为void代码3:更加优雅的写法解答2:迭代(栈辅助) 题目 请完成一个函数,输入一个 阅读全文
posted @ 2020-07-02 11:01 Howfar's 阅读(192) 评论(0) 推荐(0)
摘要:剑指Offer_#26_树的子结构剑指offer Contents 题目思路分析题意分析思路步骤1:遍历A寻找相同节点步骤2:遍历A和B判断子树结构是否相同写法1:逆向思维,如果从来没有不相同的节点,所有节点都相同写法2:正向思维,如果每个节点都相同,那么所有节点相同解答解答1:逆向思维解答2:正向 阅读全文
posted @ 2020-07-01 17:37 Howfar's 阅读(277) 评论(0) 推荐(1)