自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 数据结构与算法作业30

Leecode210 题目 给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。 分析 该题入上一道的课程表一,只是返回的值不同而已,但步骤都是相同的。 解法 直接上代码了: public int[] FindOrder(int numCourses, int[][] prerequisites) { IEnumerable<int> enumerable = Enumerable.Range(0, numCourses);

2020-05-17 22:13:16 129

原创 数据结构与算法作业29

Leecode207 题目 给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习? 分析 由于有些课程存在学习的先决条件。所以可以得到:只要能满足各个课程的先决条件就能实现对所有课程的学习。所以可以得到若所有课程的先决条件相连后组成的图能组成环就代表无法达到条件,不能完成所有课程。 解法一 首先通过分析知道通过判断是否能组成环来得出结果。所以可以想到通过对其邻接矩阵进行操作来判断是否组成环。 public bool CanFinish(int numCourses, int[][] prere

2020-05-17 21:54:41 138

原创 数据结构与算法28

Leecode101 题目 给定一个二叉树,检查它是否是镜像对称的。 分析 这道题描述简单易懂,就是给一个树判断这个树是否左右对称。对此我觉得可以用二进制,左子树用0表示,右子树用1表示位置然后可以使树中每个结点都表示出来。如此镜像位置的两个结点用0-1表示出来会是互相取反。由此可以使取反的两个结点互相比较。 解法 根据分析来实现。 public class Solution { pu...

2020-05-05 22:56:51 113

原创 数据结构与算法27

Leecode100 题目 给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 分析 这道题,题目描述佷短,首先,给了条件是两个二叉树,要求是写出代码实现将两棵树比较并返回出是否相同。这佷明显就用递归实现。 解法 根据分析,通过递归实现。通过判断两结点是否相同和其左右子树是否相同来实现递归。 public class Solutio...

2020-05-05 22:56:21 119

原创 数据结构与算法26

Leecode236 题目 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 分析 这道题,题目描述佷短,但是本体难度不小。 本体条件是在给定的树中找出两个节点的公共节点。没有特别要求。由定义分析可知:一个树中每个结点要么是p的祖先要么是q的祖先要么是p与q的共同祖先要么啥都不算的。所以可以想到使用递归的方法求出从根节点开始找其左右子树判断该子树的根是否为p或者q的祖先。 解法 根据分析出...

2020-04-29 16:00:03 110

原创 数据结构与算法25

Leecode104 题目 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 分析 首先,本题给了我们一个二叉树,要求我们返回二叉树得深度。没有什么特别得要求。因此我们可以想到二叉树的深度会等于左右子树两者的深度的最大值加一。所以可以联想到使用递归的方法。 解法 根据分析出的方法,我们可以想到若一个子树根节点为null则该子树的深度为0,由此可以得到递归的...

2020-04-29 15:36:01 124

原创 数据结构与算法24

Leecode89 题目 格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。 给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。格雷编码序列必须以 0 开头。 分析 首先本题是先给我们介绍了一下什么是格雷编码,然后要求给定编码的总位数,通过代码计算返回出格雷编码序列。唯一的确定的要求只有开头为0。所以可以通过万能的百度,了解一下什么是格雷编码。 解法 通过百度大大...

2020-04-21 00:01:33 95

原创 数据结构与算法作业23

Leecode78 题目 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 分析 首先本题给定的是一个不包含整数数组的nums,要求我们来返回所有可能的幂集。由此可以明白能够返回的子集共有2的n次方个,n为nums的数组长度。由于老师要求用到位运算的知识,所以就不讨论穷举的方法了。 解法 由于对于二进制来说,从0每次增加1一直增加到返回的...

2020-04-20 23:40:20 136

原创 数据结构与算法19

Leecode14 题目 编写一个函数来查找字符串数组中的最长公共前缀。 分析 首先本题仅仅给了一个字符串数组,要求我们返回其公共前缀。因此可以通过遍历字符串数组中的每个字符串从其前缀一个一个字符来全部判断,若判断为否则代表此前缀不为公共的了。由此来实现返回公共的最长的前缀。 解法 代码: public class Solution { public string LongestCom...

2020-04-13 11:03:09 56

原创 数据结构与算法作业20

Leecode344 题目 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 分析 这道题大一就c++就做过了,首先他要求的是不给出额外的空间原地修改。所以可以想到直接就是将相对的两个字符互换位置。 解法 按照上面的分析在c#中实现得到: public class Solution { public void ReverseString(c...

2020-04-13 10:43:57 82

原创 数据结构与算法22

Leecode136 题目 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 分析 这道题啊,由于需要考虑到线性时间复杂度,所以暴力法是不可行得。所以就需要能够一次遍历就返回只存在一个的值。因此可以考虑使用哈希集。 解法 代码: public class Solution { public int SingleNumber(int[...

2020-04-13 10:26:55 55

原创 数据结构与算法作业21

Leecode3 题目 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 分析 这道题啊原本一看到,我脑中就是直接想好了暴力法代码如何了。但是老师所不能用暴力法。所以我只能另寻他路。通过读题,我们可以知道他寻找得是不包含重复字符得子串,不是子序列,所以为了由此可以想到在字符串中每次第一次发现两个相同字符时两字符中间夹着得就是个无重复字符的子串。所以由此可以通过不停在每个串中找两个重...

2020-04-13 09:42:34 83

原创 数据结构与算法作业15

Leecode150 题目 根据逆波兰表示法,求表达式的值。 有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 分析 这道题啊就是给你一堆运算符和整数然后靠着他们的顺序来给他们运算。已知:一个字符串。目标:用逆波兰表示法计算出数值。 解法 这道题我觉得用栈来进行操作,通过将字符串中的每个元素都遍历一遍,然后碰到了数字元素就将其存入栈中,而若是碰到了运算...

2020-03-23 00:35:02 100

原创 数据结构与算法作业14

Leetcode155 题目 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 分析 已知:无。。。目标:设计出一个支持push,pop,top,操作的最小元素的栈。 解法一 这题不动脑子就直接敲一个他要啥操作我们就操作出啥的代码来。 public class MinStack { Stack<int> s = new Stack<i...

2020-03-23 00:24:24 83

原创 数据结构与算法作业13

Leetcod20 题目 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串 分析 已知:给定了一个字符串给我们。目标:判断里面是否为是有效字符串。 解法一 由题意可知:可以通过将字符串的每个元素都遍历一遍,然后将左半部分的括号时将其...

2020-03-23 00:12:25 67

原创 数据结构与算法作业12

Leetcod27 题目 给定一个链表,判断链表中是否有环。 分析 已知:有一个链表。目标:判断链表中有无环。 解法 如果链表中有环那就可以把这个表看成一个跑道。两个运动员跑步跑得快的最终总能追上跑得慢的。 所以可以设置两个指针一快一慢,如果相遇则以为着链表中有环。 代码: public class Solution { public bool HasCycle(ListNode he...

2020-03-15 15:58:40 99

原创 数据结构与算法作业11

Leetcode83 题目 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 分析 已知:给定了一个排序链表,目标:删除重复的元素。 解法 双指针,一个指向不重复的最后一节点,一个负责遍历。要注意遍历结束后,将第一个指针的下一个节点设为null。 代码 public class Solution { public ListNode DeleteDuplicates(List...

2020-03-15 15:40:04 70

原创 数据结构与算法作业10

Leetcod21 题目 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 分析 已知:两个有序链表。目标:合成一个有序链表 解法 创建一个新的链表,只有一个头节点。然后两个指针分别指向l1,l2进行遍历,新链表的结点指向遍历中值小的节点。 代码: public class Solution { public ListNode MergeTw...

2020-03-15 15:28:07 108

原创 数据结构与算法作业3

Leetcod27 题目 给定一个数组nums和一个值val,你需要原地移除所有数值等于val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(1) 额外空间的条件下完成。 分析 首先,通过读题可以知道:已知:一个数组nums,一个值val。目标:将数值等于val的元素移除并返回新数组的长度。 由题意该题是要判断除数组nums中的数值等于val的元素,...

2020-02-20 19:05:00 170

原创 数据结构与算法作业2

Leetcod26 题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 分析 首先,通过读题可以得到:已知:一个排序数组。目标:得到这个数组中重复出现的元素删除后的新数组长度,并将此数组的前部分修改为新数组。 由题意,可知道给定的是个排序数组,且由示例可...

2020-02-20 16:22:48 105

原创 数据结构与算法作业1

Leetcod1 题目 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 分析 首先,通过读题可以得到:已知数组nums,目标值target。目标:将和为目标值的数组中两个不同整数在该数组中的数组下标。 接着,由此可以想到通过检验数组中各元素与ta...

2020-02-20 13:35:00 320

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除