leetcode
Katniss的名字被占用
这个作者很懒,什么都没留下…
展开
-
【leetcode】459. 重复的子字符串(easy)
解释: 可由子串 “abc” 重复四次构成。(或子串 "abcabc"重复两次构成。给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。输入: s = “abcabcabcabc”解释: 可由子串 “ab” 重复两次构成。输入: s = “abab”输入: s = “aba”原创 2023-08-12 11:27:03 · 258 阅读 · 0 评论 -
【leetcode】28. 找出字符串中第一个匹配项的下标(easy)
给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。解释:“sad” 在下标 0 和 6 处匹配。第一个匹配项的下标是 0 ,所以返回 0。输入:haystack = “leetcode”, needle = “leeto”输入:haystack = “sadbutsad”, needle = “sad”解释:“leeto” 没有在"leetcode" 中出现,所以返回 -1。原创 2023-08-12 00:20:35 · 233 阅读 · 0 评论 -
【leetcode】剑指 Offer 58 - II. 左旋转字符串(easy)
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。原创 2023-08-12 00:05:48 · 43 阅读 · 0 评论 -
【leetcode】151. 反转字符串中的单词(medium)
注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。给你一个字符串 s ,请你反转字符串中 单词 的顺序。原创 2023-08-11 23:59:33 · 323 阅读 · 0 评论 -
【leetcode】剑指 Offer 05. 替换空格(easy)
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。输入:s = “We are happy.”输出:“We%20are%20happy.”原创 2023-08-11 23:41:23 · 40 阅读 · 0 评论 -
【leetcode】344. 反转字符串(easy)
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,原创 2023-08-11 23:32:05 · 334 阅读 · 0 评论 -
【leetcode】18. 四数之和(medium)
给你一个由 n 个整数组成的数组 nums ,和一个目标值 target。,使用双指针可以降至。原创 2023-08-11 23:23:20 · 318 阅读 · 0 评论 -
【leetcode】15. 三数之和(medium)
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。你返回所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。原创 2023-08-11 22:15:36 · 368 阅读 · 0 评论 -
【leetcode】142. 环形链表 II (medium)
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。给定一个链表的头节点 head ,返回链表开始入环的第一个节点。:遍历链表,将遍历过的节点加入HashSet,如果当前节点的下一个节点。从一指针从相遇点出发,另一指针从头节点出发,它们将在环入口相遇。慢指针一次走一步,快指针一次走两步,它们会在环内相遇。,说明链表无环,返回。原创 2023-08-08 15:51:45 · 223 阅读 · 0 评论 -
【leetcode】383. 赎金信(easy)
给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。magazine 中的每个字符只能在 ransomNote 中使用一次。如果可以,返回 true;否则返回 false。原创 2023-08-10 23:28:52 · 206 阅读 · 0 评论 -
【leetcode】383. 赎金信(easy)
给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。magazine 中的每个字符只能在 ransomNote 中使用一次。如果可以,返回 true;否则返回 false。原创 2023-08-10 19:31:26 · 306 阅读 · 0 评论 -
【leetcode】454. 四数相加 II(medium)
可以通过两两数组分别遍历,那么就能将时间复杂度降到。:如果要暴力,那么时间复杂度将会是。原创 2023-08-10 19:02:22 · 288 阅读 · 0 评论 -
【leetcode】509. 斐波那契数(easy)
斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。F(0) = 0,F(1) = 1 F(n) = F(n - 1) + F(n - 2),其中 n > 1。原创 2023-08-10 01:54:15 · 192 阅读 · 0 评论 -
【leetcode】1. 两数之和(easy)
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。原创 2023-08-10 01:26:22 · 224 阅读 · 0 评论 -
【leetcode】202. 快乐数(easy)
如果 n 是 快乐数 就返回 true;不是,则返回 false。编写一个算法来判断一个数 n 是不是快乐数。原创 2023-08-10 00:53:22 · 175 阅读 · 0 评论 -
【leetcode】349. 两个数组的交集(easy)
给定两个数组 nums1 和 nums2 ,返回 它们的交集。输出结果中的每个元素一定是。我们可以 不考虑输出结果的顺序。原创 2023-08-10 00:32:07 · 186 阅读 · 0 评论 -
【leetcode】242. 有效的字母异位词(easy)
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。原创 2023-08-09 22:45:15 · 280 阅读 · 0 评论 -
【leetcode】面试题 02.07. 链表相交
此方法的时间复杂度为O(m+n), m为headA长度,n为headB长度;空间复杂度为O(m),因为需要使用HashSet存储headA。给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。:遍历headA,将每个节点add到HashSet中;然后遍历headB,如果HashSet contains当前节点则返回该节点。eadA长度为m, headB长度为n,假设headA在相交节点之前长度为a,headB在相交节点之前长度为b,那么应有。原创 2023-08-03 22:43:51 · 159 阅读 · 0 评论 -
【leetcode】19. 删除链表的倒数第 N 个结点(medium)
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。原创 2023-08-03 15:45:41 · 37 阅读 · 0 评论 -
【leetcode】24. 两两交换链表中的节点(medium)
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。奇/偶数链表长度需要分别讨论。原创 2023-08-03 15:13:37 · 246 阅读 · 0 评论 -
【leetcode】206. 反转链表(easy)
当循环到最后一个节点时,temp指向null,cur指向前节点,pre指向最后一个节点,因此最后返回的是pre.给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。原创 2023-08-03 00:38:06 · 109 阅读 · 0 评论 -
【leetcode】203. 移除链表元素(easy)
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。原创 2023-08-02 23:47:36 · 288 阅读 · 0 评论 -
【leetcode】7.30记录
【代码】【leetcode】7.30记录。原创 2023-07-31 00:21:38 · 124 阅读 · 0 评论 -
【leetcode】209. 长度最小的子数组
如果不存在符合条件的子数组,返回。个正整数的数组和一个正整数。的长度最小的 连续子数组。解法1: 暴力(会超时)找出该数组中满足其和。原创 2023-07-30 23:41:24 · 37 阅读 · 0 评论 -
【leetcode】977. 有序数组的平方(easy)
不论数组中有正有负、全正还是全负,取平方后最大的数值必定在两端中。那么双指针指向首尾,倒序遍历result数组,并判断双指针数值大小,移动指针即可。解释:平方后,数组变为 [16,1,0,9,100] ,排序后,数组变为 [0,1,9,16,100],返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。输入:nums = [-4,-1,0,3,10]输入:nums = [-7,-3,2,3,11]输出:[0,1,9,16,100]输出:[4,9,9,49,121]原创 2023-07-30 22:29:41 · 246 阅读 · 0 评论 -
【leetcode】7.28记录
题目考察内容思路踩坑167. 两数之和 II - 输入有序数组 (Easy)双指针双指针分别指向首尾,判断指针两数之和与target的关系633. 平方数之和(Medium)双指针从0到sqrt(target)判断两数可以相同,为了避免溢出可以使用long345. 反转字符串中的元音字母双指针将元音存储到HashSet中,指针从头和尾开始判断两元素是否均为元音,均为原因则调转,否则指针继续移动。java中字符串一旦定义不能修改,最终需要用result.原创 2023-07-29 21:32:45 · 355 阅读 · 0 评论 -
【leetcode】7.29记录
题目考察内容思路踩坑剑指Offer 05.替换空格(easy)字符串创建StringBuffer,用charAt获取每个字符并判断,用sb.append©添加字符,最后返回sb.toString()541.反转字符串 II (easy)字符串针对每种情况直接实现就行string.substring(start,end)截取到的不包含end151.反转字符串中的单词(medium)字符串s.trim()用于去除首尾的空格,s.split(" ")用于空格分割原创 2023-07-30 00:03:19 · 265 阅读 · 0 评论 -
【leetcode】541. 反转字符串 II
给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。如果剩余字符少于 k 个,则将剩余字符全部反转。原创 2023-07-29 22:58:07 · 266 阅读 · 1 评论 -
【Leetcode】【简单】35. 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。输入: nums = [1,3,5,6], target = 5。输入: nums = [1,3,5,6], target = 2。输入: nums = [1,3,5,6], target = 7。请必须使用时间复杂度为 O(log n) 的算法。nums 为无重复元素 的 升序 排列数组。原创 2023-03-11 09:07:30 · 333 阅读 · 0 评论 -
【Leetcode】【简单】剑指 Offer 53 - I. 在排序数组中查找数字 I(java)
一般看到排序数组此类字眼就应该想到想考察二分查找了。一开始尝试二分查找,每查到一次。输入: nums = [5,7,7,8,8,10], target = 8。输入: nums = [5,7,7,8,8,10], target = 6。遂想到二分查找左右边界,知道了左右边界那么就能求得出现的次数。统计一个数字在排序数组中出现的次数。nums 是一个非递减数组。原创 2023-03-03 10:16:56 · 59 阅读 · 0 评论 -
【Leetcode】【简单】704. 二分查找
输入: nums = [-1,0,3,5,9,12], target = 9。输入: nums = [-1,0,3,5,9,12], target = 2。nums 的每个元素都将在 [-9999,9999]之间。:本题已要求用二分查找,并且元素不重复,那么当查找到。解释: 9 出现在 nums 中并且下标为 4。解释: 2 不存在 nums 中因此返回 -1。你可以假设 nums 中的所有元素是不重复的。,如果目标值存在返回下标,否则返回。n 将在 [1, 10000]之间。的时候直接返回下标就可以了!原创 2023-03-03 09:45:22 · 262 阅读 · 0 评论 -
【Leetcode】【中等】34. 在排序数组中查找元素的第一个和最后一个位置
题目解析:本题有两种解法,可以暴力遍历也可以二分。由于时间复杂度有要求,所以用二分查找分别查找左边界和右边界。很多人对left和right迷糊,所以直接输出。输入:nums = [5,7,7,8,8,10], target = 8。输入:nums = [5,7,7,8,8,10], target = 6。请你找出给定目标值在数组中的开始位置和结束位置。输入:nums = [], target = 0。给你一个按照非递减顺序排列的整数数组。如果数组中不存在目标值。输出:[-1,-1]输出:[-1,-1]原创 2023-03-03 09:34:48 · 57 阅读 · 0 评论 -
【Leetcode】【困难】4. 寻找两个正序数组的中位数(java)
给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。解释合并数组=[1,2,3,4],中位数(2+3)/2=2.5。输入nums1=[1,2],nums2=[3,4]输入nums1=[1,3],nums2=[2]算法的时间复杂度应该为O(log(m+n))。解释合并数组=[1,2,3],中位数2。排序,对于偶数和奇数长度分别考虑。思路先将两个数组合并然后。...原创 2022-07-27 21:45:10 · 92 阅读 · 0 评论 -
【Leetcode】【简单】1. 两数之和(java)
给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。解释因为nums[0]+nums[1]==9,返回[0,1]。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。输入nums=[2,7,11,15],target=9。输入nums=[3,2,4],target=6。输入nums=[3,3],target=6。......原创 2022-07-27 21:40:13 · 57 阅读 · 0 评论