LeetCode-033-搜索旋转排序数组1. 题目:搜索旋转排序数组 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 - ...
解析HashMap(一)
解析HashMap(一)一、什么是HashMap oracle文档中的解释: Hash table based implementation of the Map interface. This implementation provides all of the optional map ...
LeetCode-002-两数相加
LeetCode-002-两数相加1.题目:两数相加 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不 ...
LeetCode-056-合并区间
LeetCode-056-合并区间1.题目:合并区间 给出一个区间的集合,请合并所有重叠的区间。 示例 1: 输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6] ...
LeetCode-334-递增的三元子序列
LeetCode-334-递增的三元子序列1.题目:递增的三元子序列 给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列。 数学表达式如下: 如果存在这样的 i, j, k, 且满足 0 ≤ i < j < k ≤ n-1,使得 arr[i] < arr[j] ...
LeetCode-034-在排序数组中查找元素的第一个和最后一个位置
LeetCode-034-在排序数组中查找元素的第一个和最后一个位置1.题目:在排序数组中查找元素的第一个和最后一个位置 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n) 级别。 如果数组中 ...
LeetCode-215-数组中第k个最大元素
LeetCode-215-数组中第k个最大元素1.题目数组中第k个最大元素 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2输出: 5 示例 2: 输入: [3 ...
LeetCode-162-寻找峰值
LeetCode-162-寻找峰值1.题目:寻找峰值 峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。 你可以假设 nums[-1] = n ...
浅谈Arrays.asList()
浅谈Arrays.asList()1.什么Arrays.asList()?asList()是Arrays类中一个静态方法,主要作用是:将数组转换为list,也就是数组和集合连接在一起。 2.关于其使用的几个注意事项: 使用该方法时会有几大“坑”,同学们一定要注意。 2.1 不支持集合的add ...
红黑树(RBT)
红黑树1.基本知识:1.1什么是红黑树? 红黑树是一种近似平衡的二叉查找树,它能够确保任何一个节点的左右子树的高度差不会超过二者中较低那个的一陪. 和AVL树相比,AVL树是一棵严格的平衡树(它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1),它的所有子数都满足平衡二叉树的 ...