随笔分类 - leetcode刷题
摘要:题目描述: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 问总共有多少条不同的路径? dp = [[1 for _ in range(n)] for _ i
阅读全文
摘要:写在前面:栈是先入后出,与之相反的是队列,队列是先进先出的线性结构。队列是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。允许插入的一端称为队尾,允许删除的一端称为队头。 图1 队列的定义 队列的存储结构中使用的最多的是循环队列。循环队列的一个好处是:可以利用这个队列之前用过的空间。 在一
阅读全文
摘要:第一题 1,5,10,50,100五种纸币,每种对应一个数量,求找零所需最小纸币数,如无方案输出-1。 思路:贪心算法,从100币值依次往下找即可 第二题 给一个数列和按某种排序方式每一步生成的数列,要求实现该排序算法并输出每一步内容。 很明显是快排,通过率100%。 import java.uti
阅读全文
摘要:你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]。给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习。 示例 1: 输入
阅读全文
摘要:给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。 返回 s 所有可能的分割方案。 示例: 输入: "aab"输出:[ ["aa","b"], ["a","a","b"] ] 方法1:递归 class Solution: def partition(self, s: str) ->
阅读全文
摘要:题目:给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 示例 1: 输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2: 输入: [-2,0,-1]输出: 0解释: 结果不能为 2,
阅读全文
摘要:题目:找到给定字符串(由小写字符组成)中的最长子串 T , 要求 T 中的每一字符出现次数都不少于 k 。输出 T 的长度。 示例 1: 输入:s = "aaabb", k = 3 输出:3 最长子串为 "aaa" ,其中 'a' 重复了 3 次。示例 2: 输入:s = "ababbc", k =
阅读全文
摘要:题目:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。 示例: 输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 思路1:python库函数 cl
阅读全文
摘要:0,1,...,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。 示例 1: 输入: n =
阅读全文
摘要:给定一个平衡括号字符串 S,按下述规则计算该字符串的分数: () 得 1 分。AB 得 A + B 分,其中 A 和 B 是平衡括号字符串。(A) 得 2 * A 分,其中 A 是平衡括号字符串。 示例 1: 输入: "()"输出: 1示例 2: 输入: "(())"输出: 2示例 3: 输入: "
阅读全文
摘要:如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。 例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7
阅读全文
摘要:如果字符串中不含有任何 'aaa','bbb' 或 'ccc' 这样的字符串作为子串,那么该字符串就是一个「快乐字符串」。给你三个整数 a,b ,c,请你返回 任意一个 满足下列全部条件的字符串 s:s 是一个尽可能长的快乐字符串。s 中 最多 有a 个字母 'a'、b 个字母 'b'、c 个字母
阅读全文
摘要:给你一个整数数组 nums 和一个正整数 k,请你判断是否可以把这个数组划分成一些由 k 个连续数字组成的集合。如果可以,请返回 True;否则,返回 False。 示例 1: 输入:nums = [1,2,3,3,4,4,5,6], k = 4输出:true解释:数组可以分成 [1,2,3,4]
阅读全文
摘要:给你一个数组 events,其中 events[i] = [startDayi, endDayi] ,表示会议 i 开始于 startDayi ,结束于 endDayi 。 你可以在满足 startDayi <= d <= endDayi 中的任意一天 d 参加会议 i 。注意,一天只能参加一个会议
阅读全文
摘要:给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。 注意:可以认为区间的终点总是大于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。 示例 1: 输入: [ [1,2], [2,3], [3,4], [1,3] ] 输出: 1 解释: 移除 [1,3
阅读全文
摘要:给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。 注意:num 的长度小于 10002 且 ≥ k。num 不会包含任何前导零。 示例 1 : 输入: num = "1432219", k = 3输出: "1219"解释: 移除掉三个数字 4, 3, 和 2
阅读全文
摘要:给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。(当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。) 示例 1: 输入: N = 10输出: 9示例 2: 输入: N = 1234输出: 1234
阅读全文
摘要:字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。 示例: 输入: S = "ababcbacadefegdehijhklij"输出: [9,7,8]解释:划分结果为 "ababcbaca", "defeg
阅读全文
摘要:有 n 位用户参加活动,他们的 ID 从 0 到 n - 1,每位用户都 恰好 属于某一用户组。给你一个长度为 n 的数组 groupSizes,其中包含每位用户所处的用户组的大小,请你返回用户分组情况(存在的用户组以及每个组中用户的 ID)。你可以任何顺序返回解决方案,ID 的顺序也不受限制。此外
阅读全文
摘要:给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。 示例 1: 输入: nums = [4, 3, 2, 3, 5, 2, 1], k = 4输出: True说明: 有可能将其分成 4 个子集(5),(1,4),(2,3),(2,3)等于总和。
阅读全文

浙公网安备 33010602011771号