- 博客(30)
- 收藏
- 关注
原创 课程表(二)
现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。来源:力扣(LeetCode)210题链接:https://leetcode-cn.com/problems/course-schedule-ii著作权归领扣网.
2020-05-13 21:21:35
381
原创 课程表
你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]。给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习?来源:力扣(LeetCode)207题链接:https://leetcode-cn.com/problems/course-schedule著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处大致思路这.
2020-05-12 20:27:12
153
原创 二叉树的最近公共祖先
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”来源:力扣(LeetCode)236题链接:https://leetcode-cn.com/problems/lowest-common-ances...
2020-04-29 17:32:31
153
原创 二叉树的最大深度
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。来源:力扣(LeetCode)104题链接:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。对于树,还是用递归。找...
2020-04-29 08:09:05
89
原创 对称二叉树
给定一个二叉树,检查它是否是镜像对称的。来源:力扣(LeetCode)101题链接:https://leetcode-cn.com/problems/symmetric-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。树的方法还是想到递归,不过这个递归需要构造一个辅助的方法。因为一个二叉树镜像对称的条件是它的两个子树相互对称 找没有递归的条件。但两个...
2020-04-23 14:42:45
74
原创 相同的树
给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。来源:力扣(LeetCode)100题链接:https://leetcode-cn.com/problems/same-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。对于图的遍历,第一想到的还是递归。我们可以认为:两个树相同的条件有三个...
2020-04-22 17:56:52
104
原创 格雷编码
格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。格雷编码序列必须以 0 开头。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/gray-code著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。这一题是一般难度,但是其难点不在程...
2020-04-16 08:39:18
211
原创 子集
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。来源:力扣(LeetCode)78题链接:https://leetcode-cn.com/problems/subsets著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。这题我用到的方法是二进制去得到每一个子集。例如:10100表示的就是子集中含有的元素是第一个...
2020-04-15 17:38:41
187
原创 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/single-number著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。这题是简单难度。第一个想到的是遍历两遍。这个方法不仅操作起来有些复杂,而且可能会超过时间...
2020-04-09 14:54:39
60
原创 无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。这题和之前的“最大子序和”有一些相同之处。首先,我们将s的所...
2020-04-07 15:16:34
61
原创 反转字符串
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-string著作...
2020-04-01 19:29:08
232
原创 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-common-prefix著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。本来做这种题目的时候是不想用c#自己内嵌的类的方法的。但是这题如果不用的话会比较麻烦。要...
2020-03-31 20:12:19
68
原创 滑动窗口最大值
给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sliding-window-maximum著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处...
2020-03-27 19:01:34
96
原创 设计循环双端队列——击败 时间100%,空间50%
设计实现双端队列。你的实现需要支持以下操作:MyCircularDeque(k):构造函数,双端队列的大小为k。insertFront():将一个元素添加到双端队列头部。 如果操作成功返回 true。insertLast():将一个元素添加到双端队列尾部。如果操作成功返回 true。deleteFront():从双端队列头部删除一个元素。 如果操作成功返回 true。deleteLa...
2020-03-25 19:14:33
100
原创 整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-integer著作权归领扣网络所有。商业转载请联系...
2020-03-24 17:39:22
62
原创 逆波兰表示式求值
根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况这题还是很简单的。首先,这题想到的还是栈的思路。不过不完全是栈,只不过有相似的点。将见到的数字一个一个存入栈A,直到见到“+”“-”“*”“...
2020-03-19 11:34:15
111
原创 最小栈
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。LeetCode 第155题 https://leetcode-cn.com/problems/min-stack/主要想法是维护一个辅助栈,里面存...
2020-03-19 10:19:34
71
原创 有效的括号
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-parentheses著作权归领扣网络所有。商业转载请联系官方...
2020-03-17 19:16:53
86
原创 环形链表
给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/linked-list-cycle著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。环形...
2020-03-12 21:01:01
65
原创 删除排序链表中的重复元素
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。LeetCode第83题 https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/这题非常简单,但是有细节需要注意。首先我们的思路是让 一个结点temp 在链表中一个一个往后走,在走的过程中会有两种情况1)temp的值等于next的值这个时...
2020-03-11 18:57:08
77
原创 合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。LeetCode 第21题。https://leetcode-cn.com/problems/merge-two-sorted-lists/这题因为我对链表的理解不够,一开始一直不能进行处理。我一直认为如果一个结点A=另一个结点B这个语句只是让两个结点里的数据相等,两者其实没有联系。但是后来写了...
2020-03-11 17:51:08
87
原创 学习单链表的练习
学习单链表后,老师布置的作业:链表的构建单链表的构建,首先将结点封装。主要内容是,数据和指针以及构造函数。namespace ClassLibrary1{ public class SNode<T>where T:IComparable<T> { public T Data { get; set; } publi...
2020-03-08 12:32:07
126
原创 买卖股票的最佳时机 (二)
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-i...
2020-03-05 21:11:36
162
原创 猜测数字小程序
这个问题是老师自己布置的作业。顾名思义,这个程序是用来让用户猜数字的。程序很简单,老师也是让我们来调剂心情的,这个作业在大一时就用C++做过,没什么难点。唯一的难点应该是判断输入的数据是不是整型。这里用一个 try catch 就很容易解决了。代码如下:using System;using System.Collections.Generic;using System.Linq;u...
2020-03-04 21:50:48
232
原创 买卖股票的最佳时机——leetcode
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock著作权归领扣网络所有。商业转载请联...
2020-02-28 21:34:35
94
原创 合并两个有序数组
给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。来源 https://leetcode-cn.com/problems/merge-sorted-array/submissions/leetcode 88题一开始我的思路是用多层循环完成比较和插入的过程。但到了实际运用中发现不仅代码很长而且实现较为困难。第二种思...
2020-02-28 13:22:52
117
原创 最大子序列和
public class Solution { public int MaxSubArray(int[] nums) { int max=0; for (int i=0;1<nums.Length;i++) { int sum=0; for(int j=i;j<nums.Length;j+...
2020-02-27 20:29:07
57
原创 移除元素
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-element...
2020-02-23 19:40:55
54
原创 删除排序数组中的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array著作权归领扣网络所有。商业转载...
2020-02-23 15:48:21
71
原创 两数之和
给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/two-sum著作
2020-02-20 17:13:13
56
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人