Description link 给定一棵二叉树,每个叶子上面有权值,你可以任意交换某个点的两颗子树 使得最后形成的树的中序遍历出来的子树的逆序对最少 \(n \le 2\times10^5\) Solution 如果你真的想做这个题,请耐心手玩样例并看懂这个题神仙一样的输入方式…… 考虑逆序对怎么 ...
分类:
其他好文 时间:
2020-07-13 09:17:09
阅读次数:
52
题目链接 https://leetcode-cn.com/problems/binary-tree-preorder-traversal/description/ 题解一:递归 // Problem: LeetCode 144 // URL: https://leetcode-cn.com/prob ...
分类:
其他好文 时间:
2020-07-13 00:00:50
阅读次数:
90
问题:给定一个源区间[x, y]和N个无序的目标区间[x1, y1] [x2, y2] ... [xn, yn],判断源区间是不是在目标区间内(即源区间与[目标区间的并集]是否相交)。 这道题我是少有的不看答案就能把所有解法思考出来的,给了我的笨脑袋一点信心。 简单叙述下两个解法: 解法一:从源区间 ...
分类:
其他好文 时间:
2020-07-12 22:06:54
阅读次数:
52
BFS和DFS DFS遍历使用递归(隐式使用栈): void dfs(TreeNode root) { if (root == null) { return; } dfs(root.left); dfs(root.right); } BFS遍历使用队列 void bfs(TreeNode root) ...
分类:
其他好文 时间:
2020-07-12 22:04:02
阅读次数:
66
题目描述链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/ 解题思路:参考官方题解,解题思路如下:对于二叉树的层序遍历,首先应该考虑到的数据结构便是队列,利用队列现进先出的特性,可以很方便的解决此题。 (1)根 ...
分类:
其他好文 时间:
2020-07-12 20:29:04
阅读次数:
65
问题描述 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为: [ [15,7], [9,20], [3]] ...
分类:
其他好文 时间:
2020-07-12 20:24:35
阅读次数:
60
该问题的关键在于面试者使用的是 ArrayList 的 remove() 还是 Iterator 的 remove()方法。这有一段示例代码,是使用正确的方式来实现在遍历的过程中移 除元素,而不会出现 ConcurrentModificationException 异常的示例代码。 ...
分类:
其他好文 时间:
2020-07-12 19:03:39
阅读次数:
129
概述 一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另一方面,使用 Array 存储对象方面具有一些弊端,而 Java 集合就像一种容器,可以动态地把多个对象的引用放入容器中 数组在内存存储方面的特点 数组初始化以后,长度就确定了 数组声明的类型, ...
分类:
其他好文 时间:
2020-07-12 18:43:50
阅读次数:
78
迭代器模式是针对集合对象而生的,对于集合对象而言,肯定会涉及到对集合的添加和删除操作,同时也肯定支持遍历集合元素的操作,我们此时可以把遍历操作放在集合对象中,但这样的话,集合对象既承担太多的责任了,面向对象设计原则中有一条就是单一职责原则,所有我们要尽可能地分离这些职责,用不同的类取承担不同的责任, ...
分类:
其他好文 时间:
2020-07-12 17:12:04
阅读次数:
61
起因 迭代器生成器一直很迷,简单的记录一下区别 迭代器 什么是迭代? 我理解的迭代,就是使用for循环遍历一个(字符串,列表···)把里面的值一个一个的遍历出来 这个遍历的过程就可以称之为迭代 什么是迭代器? 提供迭代方法的容器 常用迭代器: 序列(列表、元组、字符串)、字典 内置函数 iter() ...
分类:
编程语言 时间:
2020-07-12 17:10:45
阅读次数:
59