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