剑指offer
Aylwang
这个作者很懒,什么都没留下…
展开
-
剑指offer 33. 判断数组是否为某二叉树的后序遍历
题目描述剑指offer 33输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。示例 1:输入: [1,6,3,2,5]输出: false示例 2:输入: [1,3,2,6,5]输出: true题目分析这道题主要根据二叉搜索树的规则,左子树 < 右子树 < 根节点根据递归分治的思想。//根据二叉搜索树的大小规则,最后一个为根节点,遍历数组,比根节点小的那段是左子树的,比根节原创 2021-07-18 22:10:30 · 128 阅读 · 0 评论 -
剑指offer 32-3 按照之字形打印二叉树
题目描述剑指offer 32-3请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。题目分析在层次遍历的基础上,对每层的列表level进行处理,如果是奇数层(第一层的索引为1)顺序,偶数层反序;列表反序的内置函数为:Collections.reverse(list);与数组反序的很像:Arrays.sort(arr);/** * Definition for a binary tree no原创 2021-07-16 22:26:31 · 72 阅读 · 0 评论 -
剑指offer 32-1从上到下打印树-层次遍历
题目描述从上到下,从左到右遍历树。层次遍历剑指offer 32-1题目分析用队列,Queue是接口,其实现类是LinkedList;将结果添加到列表忠,但是最后需要转换为数组;需要考虑root为空的特殊情况。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * Tree原创 2021-07-15 21:28:52 · 79 阅读 · 0 评论 -
剑指 Offer 48. 最长不含重复字符的子字符串
题目描述剑指 Offer 48请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。输入: “abcabcbb”输出: 3解释: 因无重复字符的最长子串是 “abc”,所以长度为 3。输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。题目分析这也是一道关于窗口滑动的问题,算是比较简单的了,因为 只有一个字符串。设置left、r原创 2021-06-12 12:24:41 · 85 阅读 · 0 评论 -
剑指 Offer 66. 构建乘积数组
题目描述剑指offer 66给定数组 A[0,1,…,n-1],请构建一个数组 B[0,1,…,n-1],其中 B[i] 的值是数组 A 中除了下标 i 以外的元素的积, 即 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。输入: [1,2,3,4,5]输出: [120,60,40,30,24]题目分析题目所求的数组:第i个元素 = 原数组中除了第i个元素其余元素所有元素的乘积。那么对于每个i(元素)来说,可以以第i个元素为分割点,将数组分原创 2021-06-12 10:47:30 · 95 阅读 · 0 评论