![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
练练练
DK不二
这个作者很懒,什么都没留下…
展开
-
无重复字符的最长子串--LeetCode
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度 解题思路:什么是滑动窗口? 其实就是一个队列,比如例题中的 abcabcbb,进入这个队列(窗口)为 abc 满足题目要求,当再进入 a,队列变成了 abca,这时候不满足要求。所以,我们要移动这个队列!如何移动?我们只要把队列的左边的元素移出就行了 class Solution: def lengthOfLongestSubstring(self, s): # 如果s的长度为0或者s为None,直接输出0原创 2022-02-22 22:20:16 · 66 阅读 · 0 评论 -
两数之和---LeetCode
""" 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 """ #第一种:暴力解法 # def twoSum(nums, target): # lens = len(nums) # for i in range(lens): # for j in range(原创 2022-02-22 10:54:58 · 143 阅读 · 0 评论 -
用两个队列实现一个栈
队列是先进先出(FIFO),就和你排队一样,先排先走人;栈是先进后出(FILO),就像你和小伙伴叠山羊一样,几个人重叠在一起,相当于元素已经入栈,下面的人想起来,就得上面的人先起来,相当于出栈,从栈顶出。 解题思路: 两个栈,A和B,入队的功能直接可以采用栈的插入元素实现,出栈比较麻烦一点,以栈A实现入队操作,栈B实现出队操作,可分为三种情况,: 一、栈B不为空:直接返回栈B的栈顶元素 二、栈A和B都为空的时候,直接返回-1 三、栈B为空,但栈A不为空的时候,此时就应该将栈A的元素依次出栈,然后再插入栈B.原创 2021-12-07 20:39:03 · 265 阅读 · 0 评论 -
判断链表是否有环
解题思路一:快慢指针,快指针每次走两步,慢指针每次走一步,如果链表有环,则快慢指针就会相遇,否则,就是无环 class Solution: def hasCycle(self , head: ListNode) -> bool: if head is None: return False fast, slow = head, head while (fast != None and fast.next != None):.原创 2021-12-06 17:04:52 · 651 阅读 · 0 评论 -
刷题:反转链表
题目要求如下: 基本思想,迭代:用 pre 和 cur 分别指向反转后的节点后反转前的节点。先局部反转,然后将pre和cur同步向前移动,直到cur指向空。 class ListNode: def __init__(self, x): self.val = x self.next = None class Solution(ListNode): def ReverseList(self, head): if head: return None pre, cur = None, he原创 2021-12-06 15:53:12 · 371 阅读 · 0 评论