摘要:
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 思路: 因为两个列表都是有序列表,可以直接进行递归调用,有序地从两个链表中取节点拼接成新的链表。 代码: /** * 阅读全文
摘要:
思路: 利用题目条件,从右上角看,矩阵是一个二叉搜索树,往左变小,往下变大。 因此可以从右上角开始,如果当前位置元素比 target 大,则行 row++; 如果当前位置元素比 target 小,则列 col--。 这样可以把时间复杂度从暴力搜索的O(nm)降到O(n+m) 代码: 时间复杂度O(m 阅读全文
摘要:
思路1:原地置换 因为数组长度为n,所有数字都在0~n-1的范围内,所以假如数组中数字不重复,则数组元素的下标等于数组元素的值。 在此基础上,遍历数组,将元素放到值所对应的索引处。如果该索引处已存在该元素,则该元素重复,返回结果。 代码: 时间复杂度O(n),空间复杂度O(1) class Solu 阅读全文
摘要:
矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。 如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。 给出两个矩形,判断它们是否重叠并返回结果。 示例 1: 输入:rec1 = [ 阅读全文