- 博客(42)
- 收藏
- 关注
原创 Task30:课程表II
题目现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。示例 1:输入: 2, [[1,0]]输出: [0,1]解释: 总共有 2 门课程。要学习课程 1,你需要先完成课程 0。因此,正确的课程顺序为 [0,1
2020-05-13 18:10:24
227
1
原创 Task29:课程表
题目你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习?示例 1:输入: 2, [[1,0]]输出: true解释: 总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能的。示例 2:输入: 2, [[1,0],[0,1]]输出: false
2020-05-13 17:06:17
237
原创 Task28:二叉树的最近公共祖先
题目给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,5,...
2020-05-01 16:29:15
126
原创 Task27:二叉树的最大深度
题目给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],返回它的最大深度 3 。代码/** * Definition for a binary tree node. * public class TreeNode { * pub...
2020-05-01 15:21:00
136
原创 Task26:对称二叉树
题目给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。1/ \2 2/ \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:1/ \2 2\ \3 3代码/** * Definition for a binary tree node. * publi...
2020-04-24 09:34:37
148
原创 Task25:相同的树
题目给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1/ \ / \2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: 1 1/ \2 ...
2020-04-22 11:12:16
79
原创 Task24:格雷编码
题目格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。格雷编码序列必须以 0 开头。示例 1:输入: 2输出: [0,1,3,2]解释:00 - 001 - 111 - 310 - 2对于给定的 n,其格雷编码序列并不唯一。例如,[0,2,3,1] 也是一个有效的格雷编码序列。00 - 0...
2020-04-17 09:25:04
96
原创 Task23:子集
题目给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]代码public class Solution { public IList<IList<int>...
2020-04-15 18:43:33
100
原创 Task22:只出现一次的数字
题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4代码class Solution: def singleNumber(self, nums: List...
2020-04-09 10:02:23
79
原创 Task21:无重复字符的最长子串
题目给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke...
2020-04-08 20:13:11
97
原创 Task20:反转字符串
题目编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:[“...
2020-04-01 21:02:05
243
原创 Task19:最长公共前缀
题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。代码public class Solution {...
2020-04-01 20:50:01
91
原创 Task18:滑动窗口最大值
题目给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。进阶:你能在线性时间复杂度内解决此题吗?示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7]解释:滑动窗口的位置 ...
2020-03-26 12:01:50
149
原创 task17:设计循环双端队列
题目设计实现双端队列。你的实现需要支持以下操作:MyCircularDeque(k):构造函数,双端队列的大小为k。insertFront():将一个元素添加到双端队列头部。 如果操作成功返回 true。insertLast():将一个元素添加到双端队列尾部。如果操作成功返回 true。deleteFront():从双端队列头部删除一个元素。 如果操作成功返回 true。delete...
2020-03-26 11:17:36
108
原创 Task16:整数反转
题目给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。代码class Solu...
2020-03-24 11:11:24
103
原创 Task15:逆波兰表达式求值
题目根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1:输入: [“2”, “1”, “+”, “3”, “*”]输出: 9解释: ((2 + 1) * 3) = 9示例 2:...
2020-03-19 17:15:50
133
原创 Task14:最小栈
题目设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);m...
2020-03-19 17:03:54
98
原创 Task13:有效的括号
题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “...
2020-03-18 18:03:39
111
原创 Task12:环形链表
题目给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:head = [1,2], pos = 0输出:tru...
2020-03-12 16:52:50
103
原创 Task11:删除排序链表中的重复元素
题目给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3代码...
2020-03-12 16:26:00
86
原创 Task10:合并两个有序链表
题目将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4代码/** * Definition for singly-linked list. * public class ListNode { * ...
2020-03-12 11:25:03
97
Task9
题目代码IlinearList.csusing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace city{ interface IlinearList<T> where T ...
2020-03-06 18:20:15
123
原创 Task8:买卖股票的最佳时机II
题目给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易...
2020-03-04 21:40:27
117
原创 Task7:猜数字游戏
题目代码using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace _2020030{ class Program { static void Main(string[] args) { ...
2020-03-04 21:03:03
165
Task5:合并两个有效数组
题目给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = ...
2020-03-01 07:52:10
202
Task4:最大子序和
题目给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。代码class Solution {public: int maxSubArray(vector<int>& nums...
2020-03-01 07:51:08
115
原创 Task3:移除元素
题目给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。代码...
2020-02-21 21:59:40
93
原创 Task2:删除排序数组中的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。class Solution {public: int removeDuplicates(vector<int>& nums) { if(nums.si...
2020-02-20 11:03:31
107
原创 Task1:两数之和
题目给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。代码class Solution {public: vector < int > twoSum(vector<int>& nums, int target) { int l=nums.size();...
2020-02-19 21:35:54
94
原创 Python练习task12:模块
在前面的学习中脚本是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了。为此 Python 提供了一个办法,把这些定义存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件被称为模块(Module)。模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 pyt...
2019-11-05 20:21:39
183
原创 Python练习task11:魔法方法
Python 的对象天生拥有一些神奇的方法,它们总被双下划线所包围,他们是面向对象的 Python 的一切。他们是可以给你的类增加魔力的特殊方法,如果你的对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Python 所调用,你可以定义自己想要的行为,而这一切都是自动发生的。构造和初始化__ init__和__new__共同构成了构造函数。__new__是用来创建类并返...
2019-11-03 17:15:59
224
原创 Python练习task10:类与对象
对象 = 属性 + 方法类主要定义对象的结构,我们通过类的模板来创建对象。类不但包含方法定义,而且还包含所有实例共享的数据。封装封装是一种信息隐蔽技术。我们定义类可以使用关键字 class,后面紧跟类的名称、冒号和类的实现。class Cat: #属性 color='white' leg=4 weight=10 sound='meow' #方...
2019-11-01 20:56:31
601
原创 Python练习task9:else与with语句
else语句while…else语句n=0while n<5: print('The number is less than 5') n=n+1else: print('The number is 5')for…else语句对于for中的语句与普通的for语句没有区别,else中的语句会在for循环正常执行完成之后再执行(即for不是通过break语句跳...
2019-10-31 10:30:40
134
原创 Python练习task8:异常处理
异常运行期检测到的错误被称为异常。Python标准异常总结try-except语句try: 检测范围except Exception[as reason]: 出现异常后的处理代码try语句的工作方式:首先,执行try子句(在关键字try和关键字except之间的语句),如果没有异常发生,忽略except子句,try子句执行后结束。如果在执行try子句的过程中发生了异...
2019-10-30 19:50:16
111
原创 Python练习task7:文件与文件系统
打开文件在python中用open(file,mode=‘r’)打开文件,它接收两个参数:文件名(file)和模式(mode),用于打开一个文件,并返回文件对象,如果该文件无法被打开,会抛出OSError。完整的语法格式:open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None)file:必需,...
2019-10-28 21:18:37
252
原创 Python练习task6:字典与集合
字典序列是以连续的整数为索引,与此不同的是,字典以"关键字"为索引,关键字可以是任意不可变类型,通常用字符串或数值。字典是 Python 唯一的一个映射类型,字符串、元组、列表属于序列类型。那么如何判断一个数据类型是否可变?有两种方法:1.用 id(X) 函数,对 X 进行某种操作,比较操作前后的 id,如果不一样,则 X 不可变,如果一样,则 X 可变。i=1print(id(i))...
2019-10-27 10:54:42
778
原创 Python练习task5:函数与 Lambda 表达式
函数基本上所有的高级语言都支持函数,Python也不例外。Python不但能非常灵活地定义函数,而且本身内置了很多有用的函数,可以直接调用。调用函数Python内置了很多有用的函数,我们可以直接调用。要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数。也可以在交互式命令行通过help(abs)查看abs函数的帮助信息。调用函数的时候,如果传入的参数数量不对,会...
2019-10-25 20:42:18
555
原创 Python练习task4:字符串与序列
今天学习的是python中的另一种常用结构——字符串以及针对序列(列表、元组和字符串都可认为是序列)的常用内置函数。字符串字符串的定义Python 中的字符串被定义为引号之间的字符集合。Python 支持使用成对的单引号或双引号。例如:s1='Hello world'print(s1)#Hello worlds1="Hello world"print(s1)#Hello wor...
2019-10-24 11:23:55
200
原创 Python练习task3:列表与元组
整型、浮点型和布尔型都可以看成是单独数据,而这些数据都可以放在一个容器里得到一个「容器类型」的数据,比如:列表(list)、元组(tuple)、字典(dict)、集合(set)和字符串(str)。列表列表是Python内置的一种数据类型,是一个有序的集合,没有固定大小,可以随时添加或减少其中的元素,保存任意数量任意类型的 Python 对象。列表的定义语法为[元素1,元素2,元素3,……,...
2019-10-22 21:00:41
300
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人