Leetcode
crystal---
心之所向,素履以往。
生如逆旅,一苇以航。
展开
-
课程表 II——拓扑排序
题目链接:https://leetcode-cn.com/problems/course-schedule-ii/题目描述:现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。示例 1:输入: 2,原创 2020-05-17 15:20:29 · 212 阅读 · 0 评论 -
动态规划题目汇总练习
1、不同路径 :https://leetcode-cn.com/problems/unique-paths/一个机器人位于一个 m x n 网格的左上角 ,机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角。问总共有多少条不同的路径?class Solution: def uniquePaths(self, m: int, n: int) -> int: ...原创 2020-03-26 11:53:51 · 641 阅读 · 0 评论 -
车的可用捕获量---------位置数组
当需要在数组中进行上下左右移动时,可以定义x、y数组用来表示移动的方向。dx=[0,1,0,-1]dy=[1,0,-1,0]例题:https://leetcode-cn.com/problems/available-captures-for-rook/在一个 8 x 8 的棋盘上,有一个白色车(rook)。也可能有空方块,白色的象(bishop)和黑色的卒(pawn)。它们分别以字...原创 2020-03-26 09:00:42 · 178 阅读 · 0 评论 -
滑动窗口
对于求解连续的题目,适合用滑动窗口来解决。例题一:长度最小的子数组给定一个含有n个正整数的数组和一个正整数s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。输入:s = 7, nums = [2,3,1,2,4,3]输出: 2class Solution: def minSubArrayLen(self, s:...原创 2020-03-21 12:35:55 · 169 阅读 · 0 评论 -
递归练习
推荐文章:https://lyl0724.github.io/2020/01/25/1/1、两两交换链表中的节点:https://leetcode-cn.com/problems/swap-nodes-in-pairs/2、对称二叉树:https://leetcode-cn.com/problems/symmetric-tree/comments/3、删除排序链表中的重复元素:ht...原创 2020-03-09 11:28:38 · 122 阅读 · 0 评论 -
合并k个有序链表---------分治法
Q:合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6# Definition for singly-linked list.# class ListNode:...原创 2020-03-09 09:51:51 · 303 阅读 · 0 评论 -
矩阵中的路径、机器人路径-------DFS
Q:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径。[["a","b","c","e"],["s","f","c","s"],["a","d","e","e"]]...原创 2020-03-08 19:10:39 · 225 阅读 · 0 评论 -
括号匹配
Q:给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足: 1、左括号必须用相同类型的右括号闭合。 2、左括号必须以正确的顺序闭合。注意:空字符串可被认为是有效字符串。解法一:利用栈的知识,如果是左括号,入栈;如果是右括号,自爱栈不空的情况下,与栈顶元素比较,如果匹配则出栈。最后判断栈是否为空,如果为空,则全部匹配...原创 2020-03-08 17:01:32 · 119 阅读 · 0 评论 -
兑换零钱----------动态规划
Q:给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。示例 :输入: coins = [1, 2, 5], amount = 11输出: 3解释: 11 = 5 + 5 + 1分析:类似于完全背包问题,只是要求的是最少个数,所以dp[i] = min(dp[i],dp[...原创 2020-03-08 15:55:51 · 154 阅读 · 0 评论 -
四数之和
Q:给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。分析:参考三数之和,将四数之和转换为三数之和即可,就是多加了一层循环https://blog.csdn.net/qzcrystal/article/detail...原创 2020-03-07 11:59:44 · 84 阅读 · 0 评论 -
三数之和
Q1:给定一个包含 n 个整数的数组 nums和目标数target,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = target ?请你找出所有满足条件且不重复的三元组。分析:将三数问题转化为两数问题,使用双指针left,right定位,从第一个位置i开始遍历,寻找i之后的满足的nums[l]+nums[r]+nums[i] == target的数cl...原创 2020-03-07 11:29:42 · 152 阅读 · 0 评论 -
最长公共前缀
Q:输入: ["flower","flow","flight"]输出: "fl"class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: res = '' for i in zip(*strs): # 如果集合长度为1,说明对应字符...原创 2020-03-07 09:29:32 · 134 阅读 · 0 评论 -
Python-----队列
class MaxQueue: # 初始化队列 def __init__(self): self.queue = [] # 求队列中的最大值 def max_value(self) -> int: if self.queue: return max(self.queue) else:...原创 2020-03-07 09:04:02 · 89 阅读 · 0 评论 -
Z字形变换
Q:将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。class Solution: ...原创 2020-03-06 11:11:20 · 100 阅读 · 0 评论 -
和为s的连续正数序列
Q:输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例 1:输入:target = 9输出:[[2,3,4],[4,5]]class Solution: def findContinuousSequence(self, target: int) -> ...原创 2020-03-06 08:53:30 · 77 阅读 · 0 评论 -
分糖果
Q:我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友。给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小朋友 n 颗糖果。然后,我们再回到队伍的起点,给第一个小朋友 n + 1 颗糖果,第二个小朋友 n + 2 颗,依此类推,直到给最后一个小朋友 2 * n 颗糖果。重复上述过程(每次都比上一次多给出一颗糖果,当...原创 2020-03-05 09:43:52 · 306 阅读 · 0 评论 -
无重复字符的最长子串
Q:给定一个字符串,求出不含有重复字符的最长子串的长度如:'abcabcbb'---------->3class Solution: def lengthOfLongestSubstring(self, s: str) -> int: # 集合自动去重 s1 = set() ls = [] # 存储从每一位开始的...原创 2020-03-04 13:13:58 · 83 阅读 · 0 评论 -
腐烂的橘子------BFS练习
class Solution: def orangesRotting(self, grid: List[List[int]]) -> int: res = 0 # 全部腐烂需要的时间 ls = [] # 存放腐烂的橘子 dx = [1, -1, 0, 0] # 位置坐标 dy = [0, 0, 1, ...原创 2020-03-04 11:12:49 · 307 阅读 · 0 评论