LeetCode题解
小K哈哈
这个作者很懒,什么都没留下…
展开
-
每日一题LeetCode4.求两个有序数组的中位数,时间复杂度O(log (m+n))
一、中位数:如果某个有序数组长度是奇数,那么其中位数就是最中间那个,如果是偶数,那么就是最中间两个数字的平均值。二、两个有序数组的中位数也是一样:假设两个有序数组的长度分别为m和n,两个数组长度之和为m+n的,如果m+n是奇数——直接找两数组合并后最中间的数,偶数的话——求两数组合并后最中间两个数的平均值三、具体思路如下:(1)为了简化代码,避免讨论m+n的奇偶数,我们使用一个小trick!!:分别找两个有序数组合并后的第(m+n+1)/2个、第(m+n+2)/2个,然后求其平均值=两个有序数组的中位原创 2020-11-18 15:58:32 · 663 阅读 · 0 评论 -
每日一题LeetCode21. 合并两个有序链表
Definition for singly-linked list. public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } }思路:1-定义一个指针cur把所有节点串起来、形成新链,定义虚拟头节点用于获取新链表头节点(虚头->头)。2-用当链1链2都没遍历结束时,如果l1<l2的值,则cur连接l1 且 cur和l1后移;如果l2<l1的...原创 2021-01-19 23:24:31 · 110 阅读 · 0 评论 -
每日一题LeetCode206.反转链表
反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * }思路:定义当前节点指针cur和当前节点的原创 2021-01-19 23:23:27 · 152 阅读 · 0 评论 -
每日一题LeetCode160. 相交链表
/**Definition for singly-linked list. public class ListNode { int val; ListNode next; ListNode(int x) { val = x; next = null; } }思路:存在空链时,不可能相交,返回null;都不是空链时,定义两个指针pApB,指针非空时遍历两个链表,指针为空时即达到尾部移向另一链表的表头,直到pA=pB,pA、pB原创 2020-10-02 15:48:15 · 86 阅读 · 0 评论