1 背影成双。

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 22w+

课程表II

课程表II题目现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。例如,想要学习课程 0,你需要先完成课程 1,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。链接:https://leetcode-cn.com/problems/course-schedule-ii/思路与课程表相同Python代码cla

2020-05-12 09:26:42

课程表

课程表题目你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1。在选修某些课程之前需要一些先修课程。例如,想要学习课程 0,你需要先完成课程 1,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习?链接:https://leetcode-cn.com/problems/course-schedule/思路本题可约化为:课程安排图是否是有向无环图(DAG)。即课程间规定了前置条件,但不能构成任何环路,否则课程前

2020-05-12 09:09:37

二叉树的最近公共祖先

二叉树的最近公共祖先题目给定一个二叉树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”链接:https://leetcode-cn.com/problems/er-cha-shu-de-zui-jin-gong-g...

2020-04-28 09:08:19

二叉树的最大深度

二叉树的最大深度题目给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。思路遍历二叉树,树的操作中递归是比较方便的操作。Python代码class TreeNode: def __init__(self, x): self.val = x self.left = None...

2020-04-28 08:29:42

对称二叉树

对称二叉树题目给定一个二叉树,检查它是否是镜像对称的。思路递归思想迭代思想:层序遍历,然后检查每一层是不是回文数组Python代码递归算法class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclass So...

2020-04-21 09:48:27

相同的树

相同的树题目给定一个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。思路递归思想Python代码class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Nonec...

2020-04-21 09:21:06

格雷编码

格雷编码题目格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。给定一个代表编码总位数的非负整数 n ,打印其格雷编码序列。格雷编码序列必须以 0 开头。思路可以看出规律n = 1 => [0,1]n = 2 =>[00,01,11,10]其实就是 [0,1] 每个数字前加0,翻转后每个数字前加1Python代码class Solution:...

2020-04-14 08:58:53

子集

子集题目给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。思路从后遍历整个 nums 列表,遇到一个数就把所有子集加上该数组成新的子集,在第二个 for 循环条件中的 sub[:] 是必要的,因为切片是引用新的对象,此时在循环中的 sub[:] 是不更新的,而 sub 本身是不断改变的。Python代码class Solutio...

2020-04-14 08:30:56

只出现一次的数字

只出现一次的数字题目给定一个非空整数数组,除了某个元素只出现一次之外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:算法应该具有线性时间复杂度。你可以不使用额外空间来实现吗?链接:https://leetcode-cn.com/problems/single-number/思路因为除了某个元素只出现一次之外,其余每个元素均出现两次,所以可以采用异或运算。Python代码...

2020-04-07 09:12:09

无重复字符的最大子串

无重复字符的最大子串题目给出一个字符串,请你找出其中不含有重复字符的最长子串的长度。链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/思路构造一个辅助字符串 sub ,运用字符串的 find 函数判断当前字符是否存在于辅助字符串 sub 中,如果不存在则添加进去,如果存在则...

2020-04-07 08:41:05

反转字符串

反转字符串题目编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组char[ ]的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用O(1)的额外空间解决这一问题。你可以假设数组中的所有字符都是ASCII码表中的可打印字符。链接:https://leetcode-cn.com/problems/reverse-string/思路Python字符串的r...

2020-03-31 09:18:25

最长公共前缀

最长公共前缀题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 " "。链接:https://leetcode-cn.com/problems/longest-common-prefix/思路在Python里,字符串是可以通过ASCII比较大小的,可以利用max() 和 min()找到最大的字符串和最小的字符串,然后通过一轮循环找到最长公共前缀。Pyt...

2020-03-31 08:58:54

滑动窗口最大值

滑动窗口最大值题目给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。链接:https://leetcode-cn.com/problems/sliding-window-maximum/思路维护窗口,向右移动时左侧超出窗口的值弹出,因为需要的是窗口内的最大值,...

2020-03-26 10:58:29

设计循环双端队列

设计循环双端队列题目设计实现双端队列。请不要使用内置的双端队列库。链接:https://leetcode-cn.com/problems/design-circular-deque/思路题目要求不使用内置的双端队列库,那么可以考虑使用双指针,即队首指针和队尾指针。Python代码class MyCircularDeque: def __init__(self, k: int...

2020-03-25 19:22:53

整数反转

整数反转题目给出一个32位的有符号整数,你需要将这个整数中每位上的数字进行反转。假设我们的环境只能存储得下32位的有符号整数,则其数值范围为[-2^31 , 2^31-1]。请根据这个假设,如果反转后整数溢出那么就返回0。链接:https://leetcode-cn.com/problems/reverse-integer/思路将 int 类型的数据转换成 str 类型,然后将字符串翻转...

2020-03-24 12:05:11

逆波兰表达式求值

逆波兰表达式求值题目根据逆波兰表示法,求表达式的值。有效的运算符包括 + ,- ,* ,/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。链接:https://leetcode-cn.com/problems/evaluate-reverse-polish-notation/思路运用lambda表达式和字典对运算符进行重载,再通过栈 stacks 对运算对象及中间结果进行存储...

2020-03-19 10:47:37

最小栈

最小栈题目设计一个支持push,pop,top操作,并能在常数时间内检索到最小元素的栈。push(x)–将元素x推入栈中pop()–删除栈顶的元素top()–获取栈顶元素getMin()–检索栈中的最小元素链接:https://leetcode-cn.com/problems/min-stack/思路题目要求在O(1)时间复杂度内检索到最小元素,即不能通过循环比较来得出最小元...

2020-03-18 16:38:14

有效的括号

有效的括号题目给定一个只包括’(’ , ‘)’ , ‘[’ , ‘]’ , ‘{’ , '}'的字符串,判断字符串是否有效。有效字符串需满足:1.左括号必须用相同类型的右括号闭合。2.左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。两种方法一、class Solution: def isValid(self, s: str) -> bool: ...

2020-03-17 11:43:08

环形链表

环形链表题目给定一个链表,判断链表中是否有环。链接:https://leetcode-cn.com/problems/linked-list-cycle/思路通过快慢指针实现,while循环条件为p1 != p2(设p1为慢指针,p2为快指针),在循环内进行判断,如果快指针p2或p2.next为None,则说明没有环,return False,若跳出循环,则说明有环,return Tru...

2020-03-12 10:24:44

删除排序链表中的重复元素

删除排序链表中的重复元素题目给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/思路由于是排序链表,所以只需判断当前节点的元素与下一个节点的元素是否相同,如果相同则将当前节点的指针指向大下个节点,如果不同则跳转到下一个节点重复操作直至链表...

2020-03-11 16:48:19

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。