- 博客(23)
- 收藏
- 关注
原创 LeetCode #2.两数相加
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
2022-12-07 04:11:43
468
原创 LeetCode #3.无重复字符的最长子串
力扣 | 3.无重复字符的最长子串题目截图方法一:暴力法利用列表。利用列表切片来滑动窗口。遍历字符串s,不断将字符串的字符添加到列表中。如果发现字符串中新的元素在前面的列表中有,立刻使用切片,使切片的开头切在重复元素的后一位,然后添加那个重复的元素(此时已经把重复的部分切掉了),再继续往下遍历。每一次添加都比较长度,选择长度大的那个,最后返回最大子串长度。class Solution: def lengthOfLongestSubstring(sel
2022-05-28 18:39:38
250
原创 LeetCode #19.删除链表的倒数第N个结点
力扣 | 19.删除链表的倒数第N个结点题目截图方法一:两次遍历第一次遍历计算链表的长度得到长度length,然后利用k=length-n取得要删除的结点处的位置。第二次遍历,到达k位置的时候利用cur.next = cur.next.next将结点指针指向要被删除结点的后面一个。这样就成功删除了。考虑到只有一个节点要被删除的情况,所以在头结点前还设置了一个节点ans,最后返回ans.next。class Solution: def removeNthFrom.
2022-05-28 16:22:30
144
原创 LeetCode #344.反转字符串
力扣 | 344.反转字符串方法:双指针简单题重拳出击!直接用双指针,从两边往中间移动,交换左右指针指向的元素,完成反转。class Solution: def reverseString(self, s: List[str]) -> None: """ Do not return anything, modify s in-place instead. """ n = len(s) lef.
2022-05-26 16:17:44
1207
原创 LeetCode #167.两数之和 II - 输入有序数组
力扣 | 167.两数之和 II - 输入有序数组题目截图方法一:暴力法两次循环即可找到对应数组。暴力法会因为超时而无法通过测试。注意:题目要求必须是唯一解,且不可以重复同一下标,所以出现答案是两个相同数字时,必须返回连个不同的下标。所以循环的时候外层设为i在0到n之间,内层设置为j在i+1到n之间。class Solution: def twoSum(self, numbers: List[int], target: int) -> List[int]:
2022-05-26 15:51:22
1243
原创 LeetCode #283.移动零
力扣 | 283.移动零题目截图方法一:两次遍历利用两次循环,第一次循环记录数组中非零的部分并覆盖原数组。记录数组中零元素个数。第二次循环从n-count开始,将数组末尾部分的元素赋值为零。class Solution: def moveZeroes(self, nums: List[int]) -> None: """ Do not return anything, modify nums in-place instead.
2022-05-25 21:30:03
225
原创 LeetCode #189.轮转数组
力扣 | 189.轮转数组题目截图方法一:三次反转当每当k等于n倍速,完成一整个循环,相当于没有变化。利用k=k%n,去除无效变化的部分。将整个数组分为前后两部分,三次反转后得到最后的结果。例如:nums=[1, 2, 3, 4, 5, 6, 7]k = 3则分为[1, 2, 3, 4]和[5, 6, 7]两段。第一次反转第一段,得[4, 3, 2, 1, 5, 6, 7]。第二次反转第二段,得[4, 3, 2, 1, 7, 6, 5]。第三次全部反转
2022-05-25 20:25:11
236
原创 LeetCode #977.有序数组的平方
力扣 | 977.有序数组的平方题目截图方法一:直接排序class Solution: def sortedSquares(self, nums: List[int]) -> List[int]: return sorted(num * num for num in nums)测试用全部代码from typing import Listclass Solution: def sortedSquares(self, nums: List
2022-05-25 00:37:46
319
原创 LeetCode #35.搜索插入位置
力扣 | 35.搜索插入位置题目截图思路:这是典型了二分法查找,只不过最后返回的不是True和False。而是数组索引。方法:二分法直接用二分法即可,无需任何创造,稍微修改一下返回值。from typing import Listclass Solution: def searchInsert(self, nums: List[int], target: int) -> int: n = len(nums) first = 0
2022-04-24 20:15:18
96
原创 LeetCode #13. 罗马数字转整数
力扣 | # 13.罗马数字转整数题目截图利用enumerate实现enumerate函数def my_enumerate(datas): for i in range(len(datas)): yield i, datas[i]
2022-04-15 16:11:17
131
原创 LeetCode #7.整数反转
力扣 | 7.整数反转题目截图方法一:数学法思路:利用“%”取模,利用“/”除数。注意:python默认是浮点算法,所以要加上int()强制转换为整数型。同时题目要求输入输出的范围都必须是,此处做两次判断。同时要判断是否为负数。输入的x为0时和正数情况一致,不做区分。我分成两个方法。输入是负数时,先将负数转为正数,然后直接引用正数的方法反转,最后再将其变为负数。class Solution: def reverse(self, x: int) ->
2022-04-08 18:42:51
633
原创 LeetCode #1.两数之和
1.两数之和力扣:1.两数之和方法一:枚举法(暴力破解)时间复杂度class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: n = len(nums) for i in range(n): for j in range(i + 1, n): if nums[i] + nums[j] == .
2022-04-01 00:22:50
1095
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人