LeetCode
Eartha1995
这个作者很懒,什么都没留下…
展开
-
QJ4 两个排序数组的中位数(Top K问题)
转载自https://blog.csdn.net/as14569852/article/details/77748881与https://blog.csdn.net/hk2291976/article/details/51107778给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。示例 1:示例...转载 2018-07-08 20:28:25 · 428 阅读 · 0 评论 -
QJ2 LeetCode - 两数相加
给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。...转载 2018-07-07 13:36:55 · 111 阅读 · 0 评论 -
LeetCode——删除排序链表中的重复元素 II
转载自https://www.cnblogs.com/ariel-dreamland/p/9159155.html给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:示例 2:示例给出的例子,重复的数都是相连的,考虑问题时我以为存在重复的数不相邻的情况,所以用了map,第一次遍历来统计所有各val值出现的次数。然而,程序没调通,AC为0。。。。。#inc...转载 2018-07-12 10:30:59 · 241 阅读 · 0 评论 -
LeetCode——删除排序链表中的重复元素
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例 1:示例 2:#include<cstdlib>#include<set>#include<iterator>class Solution {public: ListNode *deleteDuplicates(ListNode *head) { if(hea...原创 2018-07-11 22:28:02 · 151 阅读 · 0 评论 -
LeetCode——删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?不能两趟扫描,第一趟,求出链表总节点数;第二趟,计算倒数第n个节点对应的序数,删除class Solution {public: ListNode* removeNthFromEnd(ListNode* head, int n) { i...原创 2018-07-11 22:00:03 · 208 阅读 · 0 评论 -
LeetCode——
交换k个原创 2018-07-11 21:50:12 · 101 阅读 · 0 评论 -
LeetCode—— 两两交换链表中的节点
#include<cstdlib>class Solution {public: ListNode* swapPairs(ListNode* head) { if(head == NULL || head->next == NULL) return head; ListNode *temp = head, *pr...转载 2018-07-11 20:29:00 · 205 阅读 · 0 评论 -
LeetCode——旋转链表
给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:示例 2:关键是找到旋转后哪个点成为头节点(将其返回),哪个点成为尾节点,将其next指针设为NULL示例2相当于给了一点提示:当循环移动位数等于链表长度的整数倍时,链表不变。#include<cstdlib>class Solution {public: ListNode *rota...原创 2018-07-11 16:58:20 · 427 阅读 · 0 评论 -
LeetCode——分割链表
原始连接https://blog.csdn.net/gjpzl/article/details/80151354给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:关于这题自己的思路开始有个误区——以为要建立一个原链表的拷贝,其val值和原链表相同,但其实是将原链表中的节点按值大小重排。或者以为要两...翻译 2018-07-11 15:26:14 · 231 阅读 · 0 评论 -
LeetCode——反转链表2
气气气转载 2018-07-11 14:57:47 · 330 阅读 · 0 评论 -
LeetCode——反转链表
反转一个单链表。示例:进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?边界情况:链表为空,或者只有一个节点;链表节点数大于2个一起处理。效率有点低..............转载 2018-07-11 09:06:24 · 184 阅读 · 0 评论 -
LeetCode——环形链表2
给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。说明:不允许修改给定的链表。进阶:你是否可以不用额外空间解决此题?原文地址http://www.cnblogs.com/ranranblog/p/5587079.html如下图所示,X,Y,Z分别为链表起始位置,环开始位置和两指针相遇位置,则根据快指针速度为慢指针速度的两倍,可以得出:2*(a + b) = a + b ...转载 2018-07-10 19:17:09 · 3661 阅读 · 1 评论 -
LeetCode——环形链表
来源于http://blog.jobbole.com/106227/给定一个链表,判断链表中是否有环。进阶:你能否不使用额外空间解决此题?解法1:检查每个节点与前面所有节点中某个节点相等,若相等,则说明链表有环,否则比较下一个直至遍历完所有节点。时间复杂度o(n^2),空间复杂度o(1)(没有用到额外空间)解法2:创建一个以节点ID为键的Set集合,用来存储曾经遍历过的节点。然后同样是从头节点开始...转载 2018-07-10 16:37:56 · 567 阅读 · 3 评论 -
LeetCode——Copy List with Random Pointer
转载自https://blog.csdn.net/linhuanmars/article/details/22463599/不能一次扫描就生成复制链表,因为随机指针指向的节点可能还没有创建解法1 :对链表进行两次扫描,第一次顺接生成next值,并将原链表与新链表相应节点作为一对值存入一个map第二次扫描,根据map得出各节点random指针的指向。时间复杂度o(n),空间复杂度o(n)/** *...转载 2018-07-10 14:51:11 · 136 阅读 · 0 评论 -
QJ8 字符串转整数 (atoi)
实现 atoi,将字符串转为整数。在找到第一个非空字符之前,需要移除掉字符串中的空格字符。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有影响。当字符串中的第一个非空字符序列不是个...原创 2018-07-09 20:12:15 · 131 阅读 · 0 评论 -
QJ7 反转整数
改了又改,总是有几个例子不能AC,需要用一个比int更大范围的类型来存(long),得到反转值后再判断,轻轻松松解决先前用int类型,在求反转值的过程中判断是否溢出的方向是错的。终于AC测试用例......... 是真的愚蠢效率好低,看别人的解法,有用数组来存各个位的,还有没有用容器来存储各位的,直接得到反转值,再判断修改后:代码简洁,但是这次执行代码显示超时,提交代码却看到效率变高了。...原创 2018-07-09 16:38:49 · 195 阅读 · 0 评论 -
QJ5 最长回文子串
转载自https://blog.csdn.net/qq_35504607/article/details/60466277与https://www.cnblogs.com/mini-coconut/p/9074315.html给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。示例 1:示例 2:解法1:将以每个字符为首的子串都遍历一遍,判断是否为回文,如果是回文...转载 2018-07-09 11:14:21 · 160 阅读 · 0 评论 -
QJ3 无重复字符的最长子串
给定一个字符串,找出不含有重复字符的最长子串的长度。示例:给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。给定 "pwwkew" ,最长子串是 "wke" ,长度是3。请注意答案必须是一个子串,"pwke" 是 子序列 而不是子串。...转载 2018-07-07 16:37:40 · 120 阅读 · 0 评论