python实现leetcode
leetcode
江水居士
这个作者很懒,什么都没留下…
展开
-
判断一个链表是否有环 Python
# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def hasCycle(self, head: ListNode) -> bool: if not head: return False原创 2021-04-15 16:13:07 · 217 阅读 · 0 评论 -
NC 78:单链表反转 Python实现
# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: # 返回ListNode def ReverseList(self, pHead): if not pHead or not pHead.next: return pHead last = None #指向上一原创 2021-04-15 12:41:45 · 238 阅读 · 0 评论 -
3 无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。解题思路双指针:指针l指在头,另一个指针r滑动遍历,在字典中记录遇到过的字符及下标若指针r指向的字符没有出现过,记录并更新当前字串的长度若出现过,l移到上次出现的坐标的下一位,不用比较当前的长度,因为当前的长度一定小于上一次的长度直到r指向字符串最后一位代码实现class Solution(object):原创 2021-03-19 15:41:29 · 106 阅读 · 0 评论 -
2 两数相加
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807解题思路两个列表同时遍历,逐位相加,保留进位代码实现# Defin原创 2021-03-19 15:04:01 · 146 阅读 · 0 评论 -
Python实现LeetCode 1、两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解题思路用字典保存遍历过的数字和下标寻找target-nums[i]是否在字典中出现过,是则返回两数的下标否则存入nums[i]及原创 2021-03-19 11:02:53 · 81 阅读 · 0 评论