自学日记
哪一个Jan?
这个作者很懒,什么都没留下…
展开
-
重建二叉树
总结重建二叉树的递归和迭代做法来源剑指Offer 面试题7:重建二叉树原创 2020-12-01 12:33:23 · 118 阅读 · 0 评论 -
topk II
按算法导论写法,一个注意点:虽然随机化版本的快速排序的(数学)期望运行时间是O(n lgn),但在实际使用时要注意到,random函数本身开销也不小题目以剑指offer 40 最小的k个数为例输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。 示例 1:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1输出原创 2020-11-10 12:48:52 · 123 阅读 · 0 评论 -
topK问题记录
以leetcode973问为例题目描述我们有一个由平面上的点组成的列表 points。需要从中找出 K 个距离原点 (0, 0) 最近的点。(这里,平面上两点之间的距离是欧几里德距离。)你可以按任何顺序返回答案。除了点坐标的顺序之外,答案确保是唯一的。 示例 1:输入:points = [[1,3],[-2,2]], K = 1输出:[[-2,2]]解释: (1, 3) 和原点之间的距离为 sqrt(10),(-2, 2) 和原点之间的距离为 sqrt(8),由于 sqrt原创 2020-11-09 19:04:36 · 157 阅读 · 0 评论 -
结构相似的二叉树前中后序遍历
之前总结过基于迭代的前中后序遍历方法,但三种方法对应的代码结构很不同,今天做每日一题的时候看到了有人总结的三种结构相似的二叉树前中后序遍历方法,特此记录。1 前序遍历public List preorder(TreeNode root){ Stack stack = new Stack(); List list = new LinkedList(); while(!stack.isEmpty() || root!=null){ if(root!=null){原创 2020-09-29 10:48:23 · 240 阅读 · 0 评论 -
二叉树的遍历方法总结
问题描述给定一个二叉树,返回它的中序遍历。示例:输入: [1,null,2,3]1\ 2/3输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗?解法1 递归法class Solution { public List<Integer> inorderTraversal(TreeNode root) { List<Integer> ans = new ArrayList<>(); helpe原创 2020-09-16 17:02:43 · 86 阅读 · 0 评论 -
Leetcode108 将有序数组转换为二叉搜索树
题目描述将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5解法解法1 递归法官方解法解法2 利用队列迭代/** * Definition for a原创 2020-09-14 10:58:00 · 71 阅读 · 0 评论 -
练习题:输出字符串中字符的任意组合
题目如题,假设给出字符串“abc”,则要求输出“a”,“b”,“c”这三个字符的任意可能组合结果。思路和代码一开始做最开始想到的是最傻的全循环,耗时耗力,pass;然后开始想用递归的方法做,参考了一下之后,自己写的java代码如下:import java.util.ArrayList;import java.util.List;public class test { sta...原创 2018-10-12 23:52:40 · 455 阅读 · 0 评论