刷题
刷题练习
weixin_42404995
这个作者很懒,什么都没留下…
展开
-
环路检测
/*给定一个有环链表,实现一个算法返回环路的开头节点。有环链表的定义:在链表中某个节点的next元素指向在它前面出现过的节点,则表明该链表存在环路。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to node index 1解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:head = [1,2], po...原创 2020-03-11 22:27:19 · 307 阅读 · 0 评论 -
链表相交
/*给定两个(单向)链表,判定它们是否相交并返回交点。请注意相交的定义基于节点的引用,而不是基于节点的值。换句话说,如果一个链表的第k个节点与另一个链表的第j个节点是同一节点(引用完全相同),则这两个链表相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = ...原创 2020-03-10 22:59:36 · 119 阅读 · 0 评论 -
回文链表
/*编写一个函数,检查输入的链表是否是回文的。示例 1:输入: 1->2输出: false 示例 2:输入: 1->2->2->1输出: true 进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?来源:力扣(LeetCode)。*//** * Definition for singly-linked list. * st...原创 2020-03-10 18:46:55 · 63 阅读 · 0 评论 -
链表求和
/*给定两个用链表表示的整数,每个节点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。编写函数对这两个整数求和,并用链表形式返回结果。 示例:输入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295输出:2 -> 1 -> 9,即912进阶:假设这些数位是正向存放的,请再做一遍。示例:输...原创 2020-03-10 10:10:39 · 142 阅读 · 0 评论 -
删除中间节点
/*实现一种算法,删除单向链表中间的某个节点(除了第一个和最后一个节点,不一定是中间节点),假定你只能访问该节点。示例:输入:单向链表a->b->c->d->e->f中的节点c结果:不返回任何数据,但该链表变为a->b->d->e->f来源:力扣(LeetCode)*//*说明:不知道该节点前驱,因此无法直接删除该节点;...原创 2020-03-08 23:01:18 · 198 阅读 · 0 评论 -
返回倒数第 k 个节点
/*实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。注意:本题相对原题稍作改动示例:输入: 1->2->3->4->5 和 k = 2输出: 4说明:给定的 k 保证是有效的。来源:力扣(LeetCode)*//** * Definition for singly-linked list. * struct ListNod...原创 2020-03-08 22:51:08 · 97 阅读 · 0 评论 -
移除重复节点
/*编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。示例1: 输入:[1, 2, 3, 3, 2, 1] 输出:[1, 2, 3]示例2: 输入:[1, 1, 1, 1, 2] 输出:[1, 2]提示:链表长度在[0, 20000]范围内。链表元素在[0, 20000]范围内。进阶:如果不得使用临时缓冲区,该怎么解决?来源:力扣(LeetCode)...原创 2020-03-07 23:53:01 · 130 阅读 · 0 评论 -
字符串轮转
/*字符串轮转。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串)。示例1: 输入:s1 = "waterbottle", s2 = "erbottlewat" 输出:True示例2: 输入:s1 = "aa", "aba" 输出:False提示:字符串长度在[0, 100000]范围内。...原创 2020-03-07 22:32:02 · 155 阅读 · 0 评论 -
零矩阵
/*编写一种算法,若M × N矩阵中某个元素为0,则将其所在的行与列清零。示例 1:输入:[ [1,1,1], [1,0,1], [1,1,1]]输出:[ [1,0,1], [0,0,0], [1,0,1]]示例 2:输入:[ [0,1,2,0], [3,4,5,2], [1,3,1,5]]输出:[ [0,0,0,0], [0...原创 2020-03-07 22:12:18 · 436 阅读 · 0 评论 -
旋转矩阵
/* 旋转矩阵给定一幅由N × N矩阵表示的图像,其中每个像素的大小为4字节,编写一种方法,将图像旋转90度。不占用额外内存空间能否做到?示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]示例 2:给定 matrix =[...原创 2020-03-07 20:18:42 · 98 阅读 · 1 评论 -
字符串压缩
/*字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。示例1: 输入:"aabcccccaaa" 输出:"a2b1c5a3"示例2: 输入:"abbccd" 输出:"abbccd" 解释:"ab...原创 2020-03-07 18:58:19 · 112 阅读 · 0 评论 -
一次编辑
/*字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。示例 1:输入: first = "pale"second = "ple"输出: True 示例 2:输入: first = "pales"second = "pal"输出: False来源:力扣(LeetCode)*/...原创 2020-03-02 01:36:32 · 206 阅读 · 0 评论 -
回文排列
/*给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。回文串不一定是字典当中的单词。 示例1:输入:"tactcoa"输出:true(排列有"tacocat"、"atcocta",等等)来源:力扣(LeetCode)*//*说明:1、如果满足条件,字符串总数是偶数个,则所有字符必然是偶...原创 2020-03-01 00:51:03 · 109 阅读 · 0 评论 -
URL化
/*URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。)示例1: 输入:"Mr John Smith ", 13 输出:"Mr%20John%20Smith"示例2: 输入:" ", 5 输出:"%...原创 2020-02-29 01:16:24 · 119 阅读 · 0 评论 -
判定是否互为字符重排
/*给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。示例 1:输入: s1 = "abc", s2 = "bca"输出: true 示例 2:输入: s1 = "abc", s2 = "bad"输出: false说明:0 <= len(s1) <= 1000 <= len(s2) <= 1...原创 2020-02-27 10:51:00 · 154 阅读 · 0 评论 -
判断字符串是否唯一
/*给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。示例 1:输入: s1 = "abc", s2 = "bca"输出: true 示例 2:输入: s1 = "abc", s2 = "bad"输出: false说明:0 <= len(s1) <= 1000 <= len(s2) <= 1...原创 2020-02-27 10:27:23 · 160 阅读 · 0 评论