<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[weixin_44575290的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/weixin_44575290</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; weixin_44575290]]></copyright><item><title><![CDATA[课程表II]]></title><link>https://blog.csdn.net/weixin_44575290/article/details/106210285</link><guid>https://blog.csdn.net/weixin_44575290/article/details/106210285</guid><author>weixin_44575290</author><pubDate>Tue, 19 May 2020 11:18:30 +0800</pubDate><description><![CDATA[题目：
现在你总共有 n 门课需要选，记为 0 到 n-1。
在选修某些课程之前需要一些先修课程。 例如，想要学习课程 0 ，你需要先完成课程 1 ，我们用一个匹配来表示他们: [0,1]
给定课程总量以及它们的先决条件，返回你为了学完所有课程所安排的学习顺序。
可能会有多个正确的顺序，你只要返回一种就可以了。如果不可能完成所有课程，返回一个空数组。
思路：
先用字典储存每个课程的前继课程，找到所有出度为零的课程，即可以直接的学习的课程。然后从这些课程开始，删减每个课程的出度，直到得出结果或找到环。
   ]]></description><category></category></item><item><title><![CDATA[207.课程表]]></title><link>https://blog.csdn.net/weixin_44575290/article/details/106208561</link><guid>https://blog.csdn.net/weixin_44575290/article/details/106208561</guid><author>weixin_44575290</author><pubDate>Tue, 19 May 2020 10:49:20 +0800</pubDate><description><![CDATA[题目：
你这个学期必须选修 numCourse 门课程，记为 0 到 numCourse-1 。
在选修某些课程之前需要一些先修课程。 例如，想要学习课程 0 ，你需要先完成课程 1 ，我们用一个匹配来表示他们：[0,1]
给定课程总量以及它们的先决条件，请你判断是否可能完成所有课程的学习？
思路：
先用字典储存每个课程的前继课程，找到所有出度为零的课程，即可以直接的学习的课程。然后从这些课程开始，删减每个课程的出度，直到得出结果或找到环。
            public bool CanFinish]]></description><category></category></item><item><title><![CDATA[236.二叉树的最近公共祖先]]></title><link>https://blog.csdn.net/weixin_44575290/article/details/105974441</link><guid>https://blog.csdn.net/weixin_44575290/article/details/105974441</guid><author>weixin_44575290</author><pubDate>Thu, 07 May 2020 15:54:51 +0800</pubDate><description><![CDATA[题目：
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。
百度百科中最近公共祖先的定义为：“对于有根树 T 的两个结点 p、q，最近公共祖先表示为一个结点 x，满足 x 是 p、q 的祖先且 x 的深度尽可能大（一个节点也可以是它自己的祖先）。”
例如，给定如下二叉树:  root = [3,5,1,6,2,0,8,null,null,7,4]
        if(root == nul...]]></description><category></category></item><item><title><![CDATA[104 二叉树的最大深度]]></title><link>https://blog.csdn.net/weixin_44575290/article/details/105972058</link><guid>https://blog.csdn.net/weixin_44575290/article/details/105972058</guid><author>weixin_44575290</author><pubDate>Thu, 07 May 2020 14:29:15 +0800</pubDate><description><![CDATA[题目：
给定一个二叉树，找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
public class Solution {
    public int MaxDepth(TreeNode root) {
if(root==null)
return 0;
else
{
    int left=MaxDepth(root.left);
    int right=MaxDe...]]></description><category></category></item><item><title><![CDATA[101.对称二叉树]]></title><link>https://blog.csdn.net/weixin_44575290/article/details/105804991</link><guid>https://blog.csdn.net/weixin_44575290/article/details/105804991</guid><author>weixin_44575290</author><pubDate>Tue, 28 Apr 2020 08:06:04 +0800</pubDate><description><![CDATA[题目：
给定一个二叉树，检查它是否是镜像对称的。
例如，二叉树 [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
    public bool IsSymmetric(TreeNode root) {
        r...]]></description><category></category></item><item><title><![CDATA[100.相同的树]]></title><link>https://blog.csdn.net/weixin_44575290/article/details/105800406</link><guid>https://blog.csdn.net/weixin_44575290/article/details/105800406</guid><author>weixin_44575290</author><pubDate>Mon, 27 Apr 2020 21:43:19 +0800</pubDate><description><![CDATA[题目：
给定两个二叉树，编写一个函数来检验它们是否相同。
如果两个树在结构上相同，并且节点具有相同的值，则认为它们是相同的。
思路：
两个树同时开始遍历，当同时为null时相同，当所有当前节点值一样时相同，否则不同。
            if (p == null &amp;&amp; q == null)
            {
                return true;
...]]></description><category></category></item><item><title><![CDATA[子集]]></title><link>https://blog.csdn.net/weixin_44575290/article/details/105642623</link><guid>https://blog.csdn.net/weixin_44575290/article/details/105642623</guid><author>weixin_44575290</author><pubDate>Mon, 20 Apr 2020 19:31:59 +0800</pubDate><description><![CDATA[题目：
给定一组不含重复元素的整数数组 nums，返回该数组所有可能的子集（幂集）。
说明：解集不能包含重复的子集。
示例:
输入: nums = [1,2,3]
输出:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]
public class Solution {
    public IList&lt;IList&lt;int&gt;&g...]]></description><category></category></item><item><title><![CDATA[无重复字符的最长子串]]></title><link>https://blog.csdn.net/weixin_44575290/article/details/105480682</link><guid>https://blog.csdn.net/weixin_44575290/article/details/105480682</guid><author>weixin_44575290</author><pubDate>Mon, 13 Apr 2020 07:54:22 +0800</pubDate><description><![CDATA[题目：
3. 无重复字符的最长子串
给定一个字符串，请你找出其中不含有重复字符的 最长子串 的长度。
思路：
用哈希集来判断是否有重复字符。
每一次出现重复字符，截取从头开始到重复之前的子串，放入储存数组中后，在原字符串中删除所截子串。
最后比较数组中各子串的长度。
public class Solution {
    public int LengthOfLongestSubstring(st...]]></description><category></category></item><item><title><![CDATA[只出现一次的数字]]></title><link>https://blog.csdn.net/weixin_44575290/article/details/105480656</link><guid>https://blog.csdn.net/weixin_44575290/article/details/105480656</guid><author>weixin_44575290</author><pubDate>Mon, 13 Apr 2020 07:44:40 +0800</pubDate><description><![CDATA[题目：
136. 只出现一次的数字
给定一个非空整数数组，除了某个元素只出现一次以外，其余每个元素均出现两次。找出那个只出现了一次的元素。
说明：
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗？
思路：
由于数组元素必为奇数，故可以先将数组整理成由小到大的排列。再以2为格依次分割比较。
如果格内两元素相等，则比较下一格，当下一格内元素个数为一个时，直接返回当前元素；如果格内元素不...]]></description><category></category></item><item><title><![CDATA[反转字符串]]></title><link>https://blog.csdn.net/weixin_44575290/article/details/105349028</link><guid>https://blog.csdn.net/weixin_44575290/article/details/105349028</guid><author>weixin_44575290</author><pubDate>Mon, 06 Apr 2020 18:53:11 +0800</pubDate><description><![CDATA[题目：
编写一个函数，其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。
不要给另外的数组分配额外的空间，你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。
public class Solution {
    public void ReverseString(char[] s) {
...]]></description><category></category></item><item><title><![CDATA[最长公共前缀]]></title><link>https://blog.csdn.net/weixin_44575290/article/details/105348839</link><guid>https://blog.csdn.net/weixin_44575290/article/details/105348839</guid><author>weixin_44575290</author><pubDate>Mon, 06 Apr 2020 18:48:02 +0800</pubDate><description><![CDATA[题目：
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀，返回空字符串 “”
题解：
对每一个字符串，从头开始依次对比判断，直到最短的字符串长度。
               string temp="";
               if(strs.Length==0)
               return temp;
                int i = ...]]></description><category></category></item><item><title><![CDATA[滑动窗体最大值]]></title><link>https://blog.csdn.net/weixin_44575290/article/details/105196898</link><guid>https://blog.csdn.net/weixin_44575290/article/details/105196898</guid><author>weixin_44575290</author><pubDate>Mon, 30 Mar 2020 12:59:22 +0800</pubDate><description><![CDATA[题目：
给定一个数组 nums，有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。
返回滑动窗口中的最大值。
思路：
先确定滑动窗口在最初位置的最大值。滑动窗口移动一次只新增一个数，故只要将新增的数和移动前的滑动窗口内的最大值比较即可。若大于，则新增的数位新的最大值，若小于，重新判断最大值即可。
public clas...]]></description><category></category></item><item><title><![CDATA[设计循环双端队列]]></title><link>https://blog.csdn.net/weixin_44575290/article/details/105196827</link><guid>https://blog.csdn.net/weixin_44575290/article/details/105196827</guid><author>weixin_44575290</author><pubDate>Mon, 30 Mar 2020 12:46:43 +0800</pubDate><description><![CDATA[题目：
设计实现双端队列。
你的实现需要支持以下操作：
MyCircularDeque(k)：构造函数,双端队列的大小为k。
insertFront()：将一个元素添加到双端队列头部。 如果操作成功返回 true。
insertLast()：将一个元素添加到双端队列尾部。如果操作成功返回 true。
deleteFront()：从双端队列头部删除一个元素。 如果操作成功返回 true。
delet...]]></description><category></category></item><item><title><![CDATA[整数反转]]></title><link>https://blog.csdn.net/weixin_44575290/article/details/105196782</link><guid>https://blog.csdn.net/weixin_44575290/article/details/105196782</guid><author>weixin_44575290</author><pubDate>Mon, 30 Mar 2020 12:43:46 +0800</pubDate><description><![CDATA[题目： 给出一个 32 位的有符号整数，你需要将这个整数中每位上的数字进行反转。
思路：
先将有符号整数各个位置上的数提取出来，通过栈，达到反转的效果。
public class Solution {
    public int Reverse(int x) {
                int k = 1;
                int i;
                i...]]></description><category></category></item><item><title><![CDATA[逆波兰表达式求值]]></title><link>https://blog.csdn.net/weixin_44575290/article/details/105058018</link><guid>https://blog.csdn.net/weixin_44575290/article/details/105058018</guid><author>weixin_44575290</author><pubDate>Mon, 23 Mar 2020 21:19:22 +0800</pubDate><description><![CDATA[题目：
根据逆波兰表示法，求表达式的值。
有效的运算符包括 +, -, *, / 。每个运算对象可以是整数，也可以是另一个逆波兰表达式。
说明：
整数除法只保留整数部分。
给定逆波兰表达式总是有效的。换句话说，表达式总会得出有效数值且不存在除数为 0 的情况。

思路：
运用栈，将输入的字符串从头依次放入栈中。
每当检测到将存入栈中的字符为非数字，则提取出栈中的前两个数，运算后将新数存入栈中。
最...]]></description><category></category></item><item><title><![CDATA[有效的括号]]></title><link>https://blog.csdn.net/weixin_44575290/article/details/105057914</link><guid>https://blog.csdn.net/weixin_44575290/article/details/105057914</guid><author>weixin_44575290</author><pubDate>Mon, 23 Mar 2020 21:14:25 +0800</pubDate><description><![CDATA[**题目：**给定一个只包括 ‘(’，’)’，’{’，’}’，’[’，’]’ 的字符串，判断字符串是否有效。
有效字符串需满足：
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。

注意空字符串可被认为是有效字符串。
思路：
从头遍历输入的字符串，每找到一对括号就删掉。如果存在单括号，就返回False，否则，返回true
bool T = true;
            if ...]]></description><category></category></item><item><title><![CDATA[合并两个有序链表]]></title><link>https://blog.csdn.net/weixin_44575290/article/details/104906375</link><guid>https://blog.csdn.net/weixin_44575290/article/details/104906375</guid><author>weixin_44575290</author><pubDate>Mon, 16 Mar 2020 19:42:14 +0800</pubDate><description><![CDATA[题目：
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
思路：
对比两个有序链表中的元素，依次将较小的元素接在pHead后。
public class Solution {
    public ListNode MergeTwoLists(ListNode l1, ListNode l2) {
        ListNode pHead=new L...]]></description><category></category></item><item><title><![CDATA[环形链表]]></title><link>https://blog.csdn.net/weixin_44575290/article/details/104905950</link><guid>https://blog.csdn.net/weixin_44575290/article/details/104905950</guid><author>weixin_44575290</author><pubDate>Mon, 16 Mar 2020 19:25:08 +0800</pubDate><description><![CDATA[题目：
给定一个链表，判断链表中是否有环。
为了表示给定链表中的环，我们使用整数 pos 来表示链表尾连接到链表中的位置（索引从 0 开始）。 如果 pos 是 -1，则在该链表中没有环。
思路：

如果有环存在，则一定是某个元素的下一个指向位置在它前面的元素。
由第一步，则定义两个List Node类元素，一个用于判断，另一个用于回档。

public class Solution {
    ...]]></description><category></category></item><item><title><![CDATA[删除排序链表中的重复元素]]></title><link>https://blog.csdn.net/weixin_44575290/article/details/104905657</link><guid>https://blog.csdn.net/weixin_44575290/article/details/104905657</guid><author>weixin_44575290</author><pubDate>Mon, 16 Mar 2020 19:01:22 +0800</pubDate><description><![CDATA[题目：
给定一个排序链表，删除所有重复的元素，使得每个元素只出现一次。
思路：
先确定链表的第一个元素，将它接到pHead后，然后将沿题设链表找到第一个与前一元素不同的项，顺序接到pHead后，以此类推。
public class Solution {
    public ListNode DeleteDuplicates(ListNode head) {
          ListNode ...]]></description><category></category></item><item><title><![CDATA[链表应用]]></title><link>https://blog.csdn.net/weixin_44575290/article/details/104756382</link><guid>https://blog.csdn.net/weixin_44575290/article/details/104756382</guid><author>weixin_44575290</author><pubDate>Mon, 09 Mar 2020 17:08:45 +0800</pubDate><description><![CDATA[题目：

我在写了一部分之后才知道还可以用窗体去做，我用了控制台
链表的接口
节点的封装
可以定义一个类去单独存储每个城市的属性。不过由于这里只有三个属性，我觉得没必要在新建一个类。
创建链表
主函数
程序调用详情



...]]></description><category></category></item></channel></rss>