有序矩阵中第K小的元素

Kth Smallest Element in a Sorted Matrix 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。 请注意,它是排序后的第k小元素,而不是第k个元素。示例: matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15] ], k = 8,返回 13。说明: 你可以假设 k 的值永远是有效的,

- 阅读全文 -

图解SQL的inner join、left join、right join、full outer join的区别

left join(左联接):返回左表中的所有记录以及和右表中的联接字段相等的记录。 right join(右联接):返回右表中的所有记录以及和左表中的联接字段相等的记录。 inner join(等值联接):只返回两个表中联接字段相等的记录。举例如下: -------------------------------------------- 表A记录如下: aID     aNum 1     a

- 阅读全文 -

第一个缺失的正数

给定一个未排序的整数数组,找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1说明:你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间。为了找出缺失的,我们先将每个元素都放到一个属于他们的位置上去。放完以后,第一次出现元素的值和所在位置不对应,就可以找到缺失的值。

- 阅读全文 -

最长连续序列

给定一个未排序的整数数组,找出最长连续序列的长度。 要求算法的时间复杂度为 O(n)。 示例: 输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。 解法一: 暴力解法,先对数组排序,然后对数组去重,然后再遍历数组找最长的连续序列,因为排序的时间复杂度无法达到O(N),所以不符合题目要求; 解法二: 采用hashset

- 阅读全文 -

递增的三元子序列

给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列。 数学表达式如下:如果存在这样的 i, j, k, 且满足 0 ≤ i < j < k ≤ n-1, 使得 arr[i] < arr[j] < arr[k] ,返回 true ; 否则返回 false 。说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1) 。 示例 1: 输入: [1,2,3,4,5] 输出: t

- 阅读全文 -