东寻

导航

2020年2月20日 #

二叉搜索树的后序遍历序列

摘要: 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 思路 分治法。 不断地确定出左子树区间和右子树区间,并且判断:左子树区间的所有结点值 = root) return true; // 代码1为两段局部 阅读全文

posted @ 2020-02-20 12:49 东寻 阅读(229) 评论(0) 推荐(0) 编辑

从上往下打印二叉树

摘要: 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 思路 层序遍历。 时间复杂度O(n),空间复杂度O(1)。 代码 笔记 Java中null与[]不相等,返回值需要按照类型返回,不能直接返回null。 阅读全文

posted @ 2020-02-20 12:37 东寻 阅读(175) 评论(0) 推荐(0) 编辑

2020年2月19日 #

栈的压入、弹出序列

摘要: 题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长 阅读全文

posted @ 2020-02-19 15:45 东寻 阅读(109) 评论(0) 推荐(0) 编辑

包含min函数的栈

摘要: 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 注意:保证测试中不会当栈为空的时候,对栈调用pop()或者min()或者top()方法。 思路 不同步辅助栈,时间复杂度O(1),空间复杂度O(n)。 基数栈,在存放数据的栈里存放val 阅读全文

posted @ 2020-02-19 15:08 东寻 阅读(299) 评论(0) 推荐(0) 编辑

顺时针打印矩阵

摘要: 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 思路 收缩矩阵边界 阅读全文

posted @ 2020-02-19 13:20 东寻 阅读(98) 评论(0) 推荐(0) 编辑

2020年2月18日 #

二叉树的镜像

摘要: 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 思路 递归。 时间复杂度O(h),空间复杂度O(h)。 代码 笔记 先考虑输入的基础边界。 阅读全文

posted @ 2020-02-18 23:30 东寻 阅读(104) 评论(0) 推荐(0) 编辑

树的子结构

摘要: 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 思路 因为题解的特殊边界问题和搜索树时的跨层问题,需要将递归拆分和改造。 时间复杂度O(n),空间复杂度O(n)。 代码 笔记 树的边界问题,跨层搜索问题可以通过递归携带deep解决。 阅读全文

posted @ 2020-02-18 20:42 东寻 阅读(189) 评论(0) 推荐(0) 编辑

合并两个排序的链表

摘要: 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 思路 递归与非递归。 时间复杂度O(m+n),空间复杂度O(m+n)。 递归代码 java / public class ListNode { int val; ListNode next = n 阅读全文

posted @ 2020-02-18 17:56 东寻 阅读(174) 评论(0) 推荐(0) 编辑

反转链表

摘要: 题目描述 输入一个链表,反转链表后,输出新链表的表头。 思路 原地反转链表指针。 时间复杂度O(n),空间复杂度O(1)。 代码 笔记 当while循环开始时的初设如编码所示时,根据while循环中使用了next.next,循环条件必须判断next的存在,不然会指针出错。 阅读全文

posted @ 2020-02-18 17:12 东寻 阅读(127) 评论(0) 推荐(0) 编辑

链表中倒数第k个结点

摘要: 题目描述 输入一个链表,输出该链表中倒数第k个结点。 思路 快慢指针注意边界。 时间复杂度O(n),空间复杂度O(1)。 代码 java / public class ListNode { int val; ListNode next = null; ListNode(int val) { this 阅读全文

posted @ 2020-02-18 17:00 东寻 阅读(90) 评论(0) 推荐(0) 编辑