摘要:
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 --即 阅读全文
摘要:
给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。 相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为 11 阅读全文
摘要:
给定两个数组,编写一个函数来计算它们的交集。 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2: 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9] 说明: 输出结果中每个元素出现的次数,应与元素在 阅读全文
摘要:
你正在使用一堆木板建造跳水板。有两种类型的木板,其中长度较短的木板长度为shorter,长度较长的木板长度为longer。你必须正好使用k块木板。编写一个方法,生成跳水板所有可能的长度。 返回的长度需要从小到大排列。 示例: 输入:shorter = 1longer = 2k = 3输出: {3,4 阅读全文
摘要:
给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1 返回 true, 因为存 阅读全文
摘要:
给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素。 示例: matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15]],k = 8, 返回 13。 来源:力 阅读全文
摘要:
给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。 示例 1: 输入:A: [1,2,3,2,1]B: [3,2,1,4,7]输出: 3解释: 长度最长的公共子数组是 [3, 2, 1]。说明: 1 <= len(A), len(B) <= 10000 <= A[i], B 阅读全文
摘要:
一张图了解锁升级流程: 阅读全文
摘要:
之前说过hashMap,我们知道hashMap是一种非线程安全的集合,主要原因是它在多线程的情况下,插入、删除、扩容的时候容易导致数据丢失或者链表环 那我们也知道ConcurrentHashMap、hashTable是线程安全的,我们看hashTable的源码时,会发现源码中很多方法都是加了sync 阅读全文
摘要:
上次说了类加载器以及它的双亲委派模型,同样提到了双亲委派模型并不是一种强制的约束,而是推荐给开发者的类加载器的实现方式,在java中,大部分类加载器都会遵循这个模型,但是也有例外,到目前为止,双亲委派模型主要出现过3次较大规模的“被破坏的”情况。 第一次: 发生在双亲委派模型出现之前,即JDK1.2 阅读全文