-
【python-leetcode340-滑动窗口法】至多包含 K 个不同字符的最长
所属栏目:[Python] 日期:2020-12-20 热度:90
问题描述:给定一个字符串s,找到至多包含k个不同字符得最长子串的长度。 比如s="cebea",k=2,那么输出结果就是3,因为此时"ebe"满足条件:至多包含两个不同字符,且子串最长 比如s="world",k=4,那么输出结果就是4,因为"worl"和"orld"满足条件:至多包含[详细]
-
【python-leetcode15-双指针】最接近的三数之和
所属栏目:[Python] 日期:2020-12-20 热度:153
题目描述; 给定一个包括?n 个整数的数组?nums?和 一个目标值?target。找出?nums?中的三个整数,使得它们的和与?target?最接近。返回这三个数的和。假定每组输入只存在唯一答案。 例如,给定数组 nums = [-1,2,1,-4],和 target = 1. 与 target 最接近的三[详细]
-
【python-leetcode424-滑动窗口法】替换后的最长重复字符
所属栏目:[Python] 日期:2020-12-20 热度:153
问题描述: 给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换?k?次。在执行上述操作后,找到包含重复字母的最长子串的长度。 注意: 字符串长度 和 k 不会超过?104。 示例 1: 输入: s = "ABAB",k = 2 输出:[详细]
-
【python-leetcode26-双指针】删除排序数组中的重复项
所属栏目:[Python] 日期:2020-12-20 热度:117
问题描述: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例?1: 给定数组 nums = [1,1,2], 函数应该返[详细]
-
【python-leetcode209-滑动窗口法】长度最小子数组
所属栏目:[Python] 日期:2020-12-20 热度:76
问题描述:给定一个含有?n?个正整数的数组和一个正整数?s?,找出该数组中满足其和?≥?s?的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回?0。 比如s=7,nums=[2,3,1,2,4,3],输出2,因为字数组[4,3]满足条件 class Solution: def minSubArrayLe[详细]
-
【python-leetcode904-滑动窗口法】水果成篮
所属栏目:[Python] 日期:2020-12-20 热度:92
问题描述: 在一排树中,第 i 棵树产生?tree[i] 型的水果。你可以从你选择的任何树开始,然后重复执行以下步骤:把这棵树上的水果放进你的篮子里。如果你做不到,就停下来。移动到当前树右侧的下一棵树。如果右边没有树,就停下来。请注意,在选择一颗树后,[详细]
-
【python-leetcode325-滑动窗口法】最大子数组之和为k
所属栏目:[Python] 日期:2020-12-20 热度:163
题目描述:给定一个数组,求和为k的最大子数组的长度,子数组是指连续的一段数组。 比如[1,-1,5,-2,-3],k=3,那么输出为4,因为1+-1+5+-2=3。 def solution(a,k): # 用于记录当前最大值 tmp = 0 步长i从1到len(a)+1 for i in range(1 ,len(a)+1): j:表示窗口[详细]
-
【python-leetcode448-循环排序】找到所有数组中消失的数字
所属栏目:[Python] 日期:2020-12-20 热度:118
问题描述: 给定一个范围在? 1 ≤ a[i] ≤ n (?n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。 找到所有在 [1,n] 范围之间没有出现在数组中的数字。 您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假[详细]
-
【python-leetcode75-双指针】颜色分类
所属栏目:[Python] 日期:2020-12-20 热度:50
问题描述: 给定一个包含红色、白色和蓝色,一共? n? 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、?1 和 2 分别表示红色、白色和蓝色。 注意: 不能使用代码库中的排序函数来解决[详细]
-
【python-leetcode56-区间合并】合并区间
所属栏目:[Python] 日期:2020-12-20 热度:144
问题描述: 给出一个区间的集合,请合并所有重叠的区间。 示例 1: 输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,18]] 解释: 区间 [1,3] 和 [2,6] 重叠,将它们合并为 [1,6]. 示例?2: 输入: [[1,4],[4,5]] 输出: [[1,5]] 解释: 区间 [1,4] 和 [4,5] 可被视为[详细]
-
【python-leetcode442-循环排序】数组中重复的数据
所属栏目:[Python] 日期:2020-12-20 热度:95
问题描述: 给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度),其中有些元素出现两次而其他元素出现一次。 找到所有出现两次的元素。 你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗? 示例: 输入: [4,3,2,7,8,1] 输出: [2,3] 按照循[详细]
-
【python-leetcode57-区间合并】插入区间
所属栏目:[Python] 日期:2020-12-20 热度:126
问题描述: 给出一个无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 示例?1: 输入: intervals = [[1,3],[6,9]],newInterval = [2,5] 输出: [[1,5],9]][详细]
-
【python-leetcode142-快慢指针】环形链表2
所属栏目:[Python] 日期:2020-12-20 热度:186
问题描述: 给定一个链表,返回链表开始入环的第一个节点。?如果链表无环,则返回?null。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 说明:不允许修改给定的链表[详细]
-
【python-leetcode107-树的宽度遍历】二叉树的层次遍历Ⅱ
所属栏目:[Python] 日期:2020-12-20 热度:100
问题描述: 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 ? [3,9,20,null,15,7] , 3 / 9 20 / 15 7 返回其自底向上的层次遍历为: [ [15,7],[9,20],[3]] # Definit[详细]
-
【python-leetcode103-树的宽度遍历】二叉树的锯齿形层次遍历
所属栏目:[Python] 日期:2020-12-20 热度:175
给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 例如: 给定二叉树?[3,9,20,null,15,7], 3 / 9 20 ? ? / ? 15 7 返回锯齿形层次遍历如下: [ [3], [20,9], [15,7] ] ? 代[详细]
-
【python-leetcode102-树的宽度遍历】二叉树的层次遍历
所属栏目:[Python] 日期:2020-12-20 热度:143
问题描述: 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如: 给定二叉树:?[3,9,20,null,15,7], 3 / 9 20 ? ? / ? 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ] ? 代码: # Definition for a binary tree[详细]
-
【python-leetcode141-快慢指针】环形链表
所属栏目:[Python] 日期:2020-12-20 热度:101
问题描述: 给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数? pos ?来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果? pos ?是? -1 ,则在该链表中没有环。 示例 1: 输入:head = [3,2,-4],pos = 1输出:true解释:链表[详细]
-
【python-leetcode876-快慢指针】链表的中间节点
所属栏目:[Python] 日期:2020-12-20 热度:101
问题描述: 给定一个带有头结点?head?的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,5]) 返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,5])[详细]
-
【python-树的宽度遍历】二叉树的反向层次遍历
所属栏目:[Python] 日期:2020-12-20 热度:131
问题描述: 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从右到左访问所有节点)。 例如: 给定二叉树:?[3,9,20,null,15,7], 3 / 9 20 ? ? / ? 15 7 返回其层次遍历结果: [ [3], [20,9], [7,15] ] class TreeNode: def __init__ (self,x,le[详细]
-
【python-leetcode206-翻转链表】反转链表
所属栏目:[Python] 日期:2020-12-20 热度:166
问题描述: 反转一个单链表。 示例: 输入: 1-2-3-4-5-NULL 输出: 5-4-3-2-1-NULL 进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 首先是迭代方式: # Definition for singly-linked list. # class ListNode: def __init__(self,x): self.v[详细]
-
【python-leetcode202-快慢指针】快乐数
所属栏目:[Python] 日期:2020-12-20 热度:175
问题描述: 编写一个算法来判断一个数是不是“快乐数”。 一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐[详细]
-
【python-leetcode25-翻转链表】K 个一组翻转链表
所属栏目:[Python] 日期:2020-12-20 热度:154
问题描述: 给你一个链表,每?k?个节点一组进行翻转,请你返回翻转后的链表。 k?是一个正整数,它的值小于或等于链表的长度。 如果节点总数不是?k?的整数倍,那么请将最后剩余的节点保持原有顺序。 示例 : 给定这个链表:1-2-3-4-5 当?k?= 2 时,应当返回: 2[详细]
-
【python-面试题53-循环排序】寻找缺失的数
所属栏目:[Python] 日期:2020-12-20 热度:71
问题描述: 一个长度为n-1的 递增排序数组 中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 示例 1: 输入: [0,1,3] 输出: 2 示例?2: 输入: [0,2,3,4,5,6,7,9] 输出: 8 ?[详细]
-
【python-leetcode287-循环排序】寻找重复的数
所属栏目:[Python] 日期:2020-12-20 热度:189
问题描述: 给定一个包含?n + 1 个整数的数组?nums,其数字都在 1 到 n?之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。 示例 1: 输入: [1,3,4,2,2] 输出: 2 示例 2: 输入: [3,1,2] 输出: 3 说明: 不能更改[详细]
-
【python-leetcode713-双指针】乘积小于k的子数组
所属栏目:[Python] 日期:2020-12-20 热度:54
问题描述: 给定一个正整数数组?nums。 找出该数组内乘积小于?k?的连续的子数组的个数。 示例 1: 输入: nums = [10,5,2,6],k = 100 输出: 8 解释: 8个乘积小于100的子数组分别为: [10],[5],[2],[6],[10,5],[5,2],[2,6]。 需要注意的是 [10,2] 并不是乘积小于[详细]
