leetcode
文章平均质量分 61
universe_1207
这个作者很懒,什么都没留下…
展开
-
力扣--查找数组中的任一重复元素
【代码】力扣--查找数组中的任一重复元素。原创 2022-09-07 10:36:24 · 222 阅读 · 0 评论 -
力扣之斐波那契数列
本来以为就是非常简单的一道题,想着递归大法来着,结果n=37时直接超过时间限制了o(╥﹏╥)o。原创 2022-08-26 10:43:14 · 859 阅读 · 0 评论 -
力扣:两个栈实现一个队列
【代码】力扣:两个栈实现一个队列。原创 2022-08-22 16:40:35 · 100 阅读 · 0 评论 -
力扣之环形链表
文章目录题目方法一:龟兔赛跑复杂度分析哈希表的方法题目方法一:龟兔赛跑如果真有环,那兔子肯定会和乌龟相遇,当然,兔子的速度肯定要比龟的快,这样才能有交集其实还是快慢指针的原理class Solution: def hasCycle(self, head: ListNode) -> bool: if not head or not head.next: return False slow = head原创 2022-05-03 16:49:45 · 698 阅读 · 0 评论 -
力扣之删除链表倒数第几个节点
题目主要有三个思路解决这个问题:第一个最普通的思路,获取链表长度,再操作len-n+1次,定位到被删除节点的前一个第二个思路,用栈,先让所有链表元素入栈,再一个一个退出,后入先出嘛,完美的工具第三个思路,我最爱的双指针,让俩指针相隔n个位置,这样前面的指针到头的时候,后面那个指针就刚好到要删除的那个节点的前一个,当然实现这样的想法还需要引入哑结点前两个方法也引入,这样可以让头结点普通化,否则还要对节点是否是头结点单独讨论栈的方法class Solution: def re原创 2022-04-28 14:53:39 · 1190 阅读 · 0 评论 -
力扣之验证回文串
文章目录题目我的方法升级版还有最省内存的方法题目注意哦!数字也是有效字符我的方法思路:新建一个列表,储存所有有效字符的Ascii码,并统一大小写,再用双指针遍历一遍列表,看是否回文class Solution: def isPalindrome(self, s: str) -> bool: asc = [] for i in range(len(s)): a = ord(s[i]) if a&g原创 2022-03-11 16:16:06 · 448 阅读 · 0 评论 -
力扣之买卖股票②
文章目录解法1:把上坡路都加起来解法2:我的方法解法3:动态规划,转移矩阵好家伙,这道题还以为有多难呢,吭哧吭哧写了一个晚上加上午,看了答案才知道我想的太复杂了!题目没有要求返回买和卖的时间数,也没有说要手续费,只要把所有上坡的高度都加起来就对了解法1:把上坡路都加起来class Solution: def maxProfit(self, prices: List[int]) -> int: profit = 0 for i in range(le原创 2022-03-09 15:22:38 · 6758 阅读 · 0 评论 -
TODO力扣之旋转图像
文章目录原创 2022-03-09 10:55:26 · 83 阅读 · 0 评论 -
力扣小周推荐——最大交换
文章目录我的做法小周让我做的一道题,俺kuakua两下,不到俩小时就做完了,虽然也不快,但也狠狠平复了轮换数组那道题的伤o(╥﹏╥)o我的做法思路:从第一个位置开始,判断这个位置的值是否是后面数字中的最大值,若不是,就要交换这个位置的值和最大值所在的位置,注意,这个最大值所在的位置是最后一次出现最大值的位置,结束循环,返回;若是,则到下一位再重复操作,直到出现第一种情况或者已经到最后一位,到最后一位就说明这个数组不用换了class Solution: def maximumSw原创 2022-03-04 09:59:38 · 235 阅读 · 0 评论 -
力扣之轮转数组(玩转取余操作)
文章目录环转替代法数组翻转法这几天可被一道题愁死了,我废寝忘食但怎么都做不出来,好不容易想出来了一种方法吧,结果超时了,又想出一种办法吧,结果哦答案还对不上,给我气得,记录一下这坑爹题我的超时方法,理解起来非常简单,就是一次只往右挪一位,循环k次就好我还想了一个方法和答案第二种环转方法类似,但是咋都不对,下面重点讲一下这个,这个方法比较难,答案还用到了高代里的一些结论,但是作为数学组选手,俺就喜欢挑战这种方法环转替代法好家伙,那答案写的,我看了俩小时都没懂,结果看到一个圆圈,突然就理解了原创 2022-03-03 17:34:11 · 267 阅读 · 0 评论 -
哈希表(字典),sort,set
文章目录原来散列函数就是哈希表啊,原来哈希表就是python中的字典啊!phone = dict()phone = {}以上两种方法都能表示创建字典phone["mama"] =12345"mama"是key,12345是值value查找联系人的电话号码value = phone.get("mama")如果没有这个人则返回None,否则返回对应的value值...原创 2022-02-19 01:00:57 · 728 阅读 · 0 评论 -
力扣---原地删除数组中的重复元素
文章目录题目我的做法:逆序删除法题目原地删除数组中的重复元素且不增加额外空间数据已按升序排列保证元素相对顺序不变返回新数组的长度输入:nums = [0,0,1,1,1,2,2,3,3,4]输出:5, nums = [0,1,2,3,4]解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4 。不需要考虑数组中超出新长度后面的元素。在这里插入代码片我的做法:class Solution: def removeDuplica原创 2022-02-12 17:12:51 · 8075 阅读 · 0 评论 -
两数之和
太烦了,做了好久终于没问题了,之前也做出来了,但运行速度不大行,才击败了30%几,之前的代码忘记copy过来了,大概用到的方法是构建一个列表sub_nums,sub_nums=target-nums,对sub_nums的每个元素都在nums里寻找一遍,若存在,则立即跳出循环小周告诉了我还有一种简单一点的方法,以上方法的复杂度为o(n2)o(n^2)o(n2),下面这种方法好像是o(nlogn)o(n\log n)o(nlogn)先对列表排序(升序)设定两个指针分别指向列表的头和尾关于排序函数..原创 2020-07-19 22:56:37 · 117 阅读 · 0 评论 -
最大子序和
这里用到了数组递归,动态规划的思想,对nums里的每个位置先找到以该位置结尾的子数列和的最大值,对该位置后面进来的数,只要比较这个最大值即可class Solution: def maxSubArray(self, nums: List[int]) -> int: max_num = [nums[0]]*len(nums) ma = nums[0] for i in range(1,len(nums)): if ma.原创 2020-07-18 11:57:09 · 148 阅读 · 0 评论 -
按奇偶排序数组
class Solution: def sortArrayByParityII(self, A: List[int]) -> List[int]: n=int(len(A)/2) odd_index=[0]*n even_index=[0]*n count_odd=0 count_even=0 for i in range(0,len(A)): a = A[i]%2 .原创 2020-07-13 22:25:53 · 324 阅读 · 0 评论 -
环形链表判断
我的方法:# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def hasCycle(self, head: ListNode) -> bool: p = head if p!=None: .原创 2020-07-13 13:18:24 · 170 阅读 · 0 评论 -
相交链表与一个易错知识点
# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode: len_headA = .原创 2020-07-12 22:39:50 · 139 阅读 · 0 评论 -
我的死穴——反转链表+删除链表节点
# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def reverseList(self, head: ListNode) -> ListNode: p = head prev=None whi.原创 2020-07-12 00:57:34 · 232 阅读 · 0 评论 -
804. 唯一摩尔斯密码词
class Solution: def uniqueMorseRepresentations(self, words: List[str]) -> int: Morse=[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-", ".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-..原创 2020-07-11 12:25:36 · 177 阅读 · 0 评论 -
单词规律
class Solution: def wordPattern(self, pattern: str, str: str) -> bool: str_list=str.split(' ') dic={} if len(pattern)==len(str_list): j=0 for i in pattern: if not i in dic: .原创 2020-07-11 11:48:29 · 196 阅读 · 0 评论 -
第一个只出现一次
class Solution: def firstUniqChar(self, s: str) -> str: n=len(s) c=[0]*26 if n!=0: for i in range(0,n): j=ord(s[i])-ord('a') c[j]=c[j]+1 c_count=c.coun原创 2020-07-11 00:31:58 · 96 阅读 · 0 评论 -
344. 反转字符串
小周版本class Solution: def reverseString(self, s: List[str]) -> None: """ Do not return anything, modify s in-place instead. """ i=0 j=len(s)-1 while (i<j): temp=s[i] s[i]=..原创 2020-07-08 12:48:57 · 150 阅读 · 0 评论 -
leetcode :1480. 一维数组的动态和
class Solution: def runningSum(self, nums: List[int]) -> List[int]: n=len(nums) sum = list(nums) for i in range(1,n): sum[i]=sum[i-1]+nums[i] return sum原创 2020-07-07 21:50:45 · 166 阅读 · 0 评论