<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[dsyblog]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_30448607</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_30448607]]></copyright><item><title><![CDATA[剑指Offer刷题Day1]]></title><link>https://blog.youkuaiyun.com/qq_30448607/article/details/106932227</link><guid>https://blog.youkuaiyun.com/qq_30448607/article/details/106932227</guid><author>qq_30448607</author><pubDate>Tue, 23 Jun 2020 21:17:15 +0800</pubDate><description><![CDATA[剑指Offer
文章目录剑指OfferDay 13. 数组中重复的数字4. 二维数组中的查找5. 替换空格6. 从尾到头打印链表7. 重建二叉树
Day 1
3. 数组中重复的数字
**解题关键：**数组nums的长度为n，且里面的数字取值范围是[0, n-1]。
思路一
通过开辟一个新的数组array，array的index代表nums数组中的值，array的值代表nums数组中元素出现的次数。
**复杂度：**时间复杂度：O(n)，空间复杂度：O(n)
public int findRepeatNumb]]></description><category></category></item><item><title><![CDATA[HashMap源码分析]]></title><link>https://blog.youkuaiyun.com/qq_30448607/article/details/104961349</link><guid>https://blog.youkuaiyun.com/qq_30448607/article/details/104961349</guid><author>qq_30448607</author><pubDate>Thu, 19 Mar 2020 16:44:03 +0800</pubDate><description><![CDATA[Map 是广义 Java 集合框架中的另外一部分，HashMap 作为框架中使用频率最高的类型之一， 它本身以及相关类型自然也是面试考察的热点。
面试官常问的问题有：对比 Hashtable、HashMap、TreeMap有什么不同？谈谈你对HashMap的掌握。
1.对比 Hashtable、HashMap、TreeMap有什么不同？
Hashtable、HashMap、TreeMap 都是最常...]]></description><category></category></item><item><title><![CDATA[二叉树基础---你必须会的二叉树知识]]></title><link>https://blog.youkuaiyun.com/qq_30448607/article/details/104927954</link><guid>https://blog.youkuaiyun.com/qq_30448607/article/details/104927954</guid><author>qq_30448607</author><pubDate>Thu, 19 Mar 2020 10:10:28 +0800</pubDate><description><![CDATA[二叉树作为面试中高频出现的数据结构，本文将介绍二叉树基础。
对于二叉树，最常见的面试问题就是：请描述一棵二叉树，二叉树的XX遍历的递归算法与非递归算法。这些都是基础，也就是说是必须要掌握的内容。
本篇博文就致力于梳理清楚，这些基础问题。希望有所收获。
很多人会问，二叉树在我们平时开发中用的很少啊，为什么面试官那么爱问，以及算法题中出现的那么平凡，很多人甚至没有办法立刻想到二叉树的应用有哪些？那么就...]]></description><category></category></item><item><title><![CDATA[前缀树Trie及其应用（下） ---过滤敏感词]]></title><link>https://blog.youkuaiyun.com/qq_30448607/article/details/104895621</link><guid>https://blog.youkuaiyun.com/qq_30448607/article/details/104895621</guid><author>qq_30448607</author><pubDate>Mon, 16 Mar 2020 17:54:32 +0800</pubDate><description><![CDATA[本篇文章主要介绍前缀树在开发中的应用。
采用前缀树这种数据结构，实现一个过滤敏感词算法，并将其封装成一个字符串工具，以供后续使用。如果充分理解上篇文章所说的两道Leetcode算法题，那么实现过滤敏感词的功能，并不困难。
文章目录1.简单复习前缀树2.定义前缀树与insert方法3.根据敏感词初始化前缀树4.编写过滤敏感词方法小结：
1.简单复习前缀树

名称：Trie、字典树、查找树
特点：查找...]]></description><category></category></item><item><title><![CDATA[前缀树Trie及其应用（上） ---Leetcode208、Leetcode720]]></title><link>https://blog.youkuaiyun.com/qq_30448607/article/details/104892156</link><guid>https://blog.youkuaiyun.com/qq_30448607/article/details/104892156</guid><author>qq_30448607</author><pubDate>Mon, 16 Mar 2020 11:34:37 +0800</pubDate><description><![CDATA[前缀树是一种很重要的数据结构，本篇文章将通过Leetcode中的两道与前缀树相关的题目，以及在实际开发中的应用来探讨这个问题。
本篇文章，主要介绍前缀树的概念以及两道经典的前缀树算法题。
文章目录1.前缀树概念2.实现Trie（Leetcode208）题目描述解题思路解答代码3.词典中最长的单词（Leetcode720）题目描述解题思路解答代码参考资料
1.前缀树概念
Trie（发音为"try"）...]]></description><category></category></item><item><title><![CDATA[创建型模式---工厂模式]]></title><link>https://blog.youkuaiyun.com/qq_30448607/article/details/104847043</link><guid>https://blog.youkuaiyun.com/qq_30448607/article/details/104847043</guid><author>qq_30448607</author><pubDate>Sat, 14 Mar 2020 19:59:28 +0800</pubDate><description><![CDATA[文章目录1. 模式名称及概念2. 工厂模式的好处3.简单工厂模式4. 工厂方法模式5.抽象工厂模式6.简单工厂和抽象工厂的比较参考资料
1. 模式名称及概念
软件系统经常不断变化，而且不稳定。我们必须考虑对象和关系的松耦合。松耦合是软件设计时一个非常重要的特性，可以帮助系统不做或者做很少的变更就能扩展新功能。
工厂顾名思义就是创建产品。
根据产品时具体产品还是具体工厂可以分为简单工厂模式和工厂方法...]]></description><category></category></item><item><title><![CDATA[结构型模式---装饰器模式]]></title><link>https://blog.youkuaiyun.com/qq_30448607/article/details/104838556</link><guid>https://blog.youkuaiyun.com/qq_30448607/article/details/104838556</guid><author>qq_30448607</author><pubDate>Fri, 13 Mar 2020 18:29:15 +0800</pubDate><description><![CDATA[文章目录1. 模式名称及概念2. 使用场景3.特征及鉴别方法4.装饰器模式的设计装饰器设计模式实现5.Java中的应用IO框架自定义数据连接池参考资料
1. 模式名称及概念
在实际生产中，某个类的行为（它所提供的方法）已经没法满足当前的需要了，但是又需要使用原有的部分功能，因此需要对原有对象进行增强。
装饰器模式（Decorator Pattern）也叫包装器模式就是为了解决此问题而诞生的，它是对...]]></description><category></category></item><item><title><![CDATA[设计模式专辑]]></title><link>https://blog.youkuaiyun.com/qq_30448607/article/details/104835972</link><guid>https://blog.youkuaiyun.com/qq_30448607/article/details/104835972</guid><author>qq_30448607</author><pubDate>Fri, 13 Mar 2020 11:26:16 +0800</pubDate><description><![CDATA[设计模式
1. 什么是设计模式？
软件设计模式（Software Design Pattern），又称设计模式，是指在软件开发中，经过验证的，用于解决在特定环境下、重复出现的、特定问题的解决方案。
2.为什么要学习设计模式
设计模式的本质是面向对象设计原则的实际运用，是对类的封装性、继承性和多态性以及类的关联关系和组合关系的充分理解。正确使用设计模式具有以下优点。

可以提高程序员的思维能力、编程...]]></description><category></category></item><item><title><![CDATA[Leetcode刷题笔记---Array部分]]></title><link>https://blog.youkuaiyun.com/qq_30448607/article/details/89930189</link><guid>https://blog.youkuaiyun.com/qq_30448607/article/details/89930189</guid><author>qq_30448607</author><pubDate>Tue, 07 May 2019 21:39:10 +0800</pubDate><description><![CDATA[Leetcode刷题笔记
Array

Remove Element

作用，给定一个数组，删除数组中的某一个值，并在不开辟额外的内存空间的条件下做到，即空间复杂度是O(1)。
思路，两个指针，一个快，一个慢。快的那个遍历一遍整个数组，慢的那个指针只有在不相等的时候往前走，在遇到相等时就不往前走。
核心代码：i是快指针，每次都加1；res是慢指针，只有在不相等时就把当前i索引的值更新到res的位置...]]></description><category></category></item><item><title><![CDATA[数据结构与算法第一期：栈，链表，队列]]></title><link>https://blog.youkuaiyun.com/qq_30448607/article/details/89110197</link><guid>https://blog.youkuaiyun.com/qq_30448607/article/details/89110197</guid><author>qq_30448607</author><pubDate>Mon, 08 Apr 2019 21:42:07 +0800</pubDate><description><![CDATA[编程学习第一次作业

本周主要学习的数据结构有栈、队列和链表。需要实现一些基本的数据结构，和完成相应的LeetCode算法题。本作业都是通过Java编写的。

1.栈
1.1 编程实现特定需求

用数组实现一个顺序栈

public class ArrayStack {
	private String[] items;
	private int count;
	private int n;
	
	...]]></description><category></category></item><item><title><![CDATA[《数据结构与编程之美》学习笔记2：算法复杂度那些事儿]]></title><link>https://blog.youkuaiyun.com/qq_30448607/article/details/88532676</link><guid>https://blog.youkuaiyun.com/qq_30448607/article/details/88532676</guid><author>qq_30448607</author><pubDate>Wed, 13 Mar 2019 14:59:15 +0800</pubDate><description><![CDATA[“算法复杂度分析是整个算法学习的精髓，只要掌握了它，数据结构和算法的内容基本上就掌握了一半。”这句话虽然夸张了些，但是也表达出了复杂度分析的重要性。本篇博文介绍算法复杂度的大O表示法、最好、最坏、平均和均摊时间复杂度。

一、如何分析、统计算法的执行效率和资源消耗？
1. 为什么需要复杂度分析？

事后统计法 有很大的局限性

测试结果非常依赖于环境，不同配置的计算机，会产生截然不同的测试结果。...]]></description><category></category></item><item><title><![CDATA[《数据结构与编程之美》学习笔记1：为什么，怎么学数据结构与算法。]]></title><link>https://blog.youkuaiyun.com/qq_30448607/article/details/88526625</link><guid>https://blog.youkuaiyun.com/qq_30448607/article/details/88526625</guid><author>qq_30448607</author><pubDate>Wed, 13 Mar 2019 10:14:46 +0800</pubDate><description><![CDATA[写在前面：
数据结构与算法对于一个程序员来说是至关重要的，一个好的程序员和不好的程序员之间的差距可能就是算法与数据结构掌握。本篇博文也是在学习王争老师的《数据结构与算法之美》课程之后所做的笔记，方便之后回顾。

一、那么为什么要学习算法呢？
1.大厂面试，必考数据结构与算法。

校招时，参加面试学生大多没有实际项目经验，公司考察学生基础知识是否掌握。因为这反映了一个人的长期潜力，FLAG巨头面试...]]></description><category></category></item></channel></rss>