自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 剑指Offer刷题Day1

剑指Offer文章目录剑指OfferDay 13. 数组中重复的数字4. 二维数组中的查找5. 替换空格6. 从尾到头打印链表7. 重建二叉树Day 13. 数组中重复的数字**解题关键:**数组nums的长度为n,且里面的数字取值范围是[0, n-1]。思路一通过开辟一个新的数组array,array的index代表nums数组中的值,array的值代表nums数组中元素出现的次数。**复杂度:**时间复杂度:O(n),空间复杂度:O(n)public int findRepeatNumb

2020-06-23 21:17:15 182

原创 HashMap源码分析

Map 是广义 Java 集合框架中的另外一部分,HashMap 作为框架中使用频率最高的类型之一, 它本身以及相关类型自然也是面试考察的热点。面试官常问的问题有:对比 Hashtable、HashMap、TreeMap有什么不同?谈谈你对HashMap的掌握。1.对比 Hashtable、HashMap、TreeMap有什么不同?Hashtable、HashMap、TreeMap 都是最常...

2020-03-19 16:44:03 1446

原创 二叉树基础---你必须会的二叉树知识

二叉树作为面试中高频出现的数据结构,本文将介绍二叉树基础。对于二叉树,最常见的面试问题就是:请描述一棵二叉树,二叉树的XX遍历的递归算法与非递归算法。这些都是基础,也就是说是必须要掌握的内容。本篇博文就致力于梳理清楚,这些基础问题。希望有所收获。很多人会问,二叉树在我们平时开发中用的很少啊,为什么面试官那么爱问,以及算法题中出现的那么平凡,很多人甚至没有办法立刻想到二叉树的应用有哪些?那么就...

2020-03-19 10:10:28 245

原创 前缀树Trie及其应用(下) ---过滤敏感词

本篇文章主要介绍前缀树在开发中的应用。采用前缀树这种数据结构,实现一个过滤敏感词算法,并将其封装成一个字符串工具,以供后续使用。如果充分理解上篇文章所说的两道Leetcode算法题,那么实现过滤敏感词的功能,并不困难。文章目录1.简单复习前缀树2.定义前缀树与insert方法3.根据敏感词初始化前缀树4.编写过滤敏感词方法小结:1.简单复习前缀树名称:Trie、字典树、查找树特点:查找...

2020-03-16 17:54:32 281

原创 前缀树Trie及其应用(上) ---Leetcode208、Leetcode720

前缀树是一种很重要的数据结构,本篇文章将通过Leetcode中的两道与前缀树相关的题目,以及在实际开发中的应用来探讨这个问题。本篇文章,主要介绍前缀树的概念以及两道经典的前缀树算法题。文章目录1.前缀树概念2.实现Trie(Leetcode208)题目描述解题思路解答代码3.词典中最长的单词(Leetcode720)题目描述解题思路解答代码参考资料1.前缀树概念Trie(发音为"try")...

2020-03-16 11:34:37 247

原创 创建型模式---工厂模式

文章目录1. 模式名称及概念2. 工厂模式的好处3.简单工厂模式4. 工厂方法模式5.抽象工厂模式6.简单工厂和抽象工厂的比较参考资料1. 模式名称及概念软件系统经常不断变化,而且不稳定。我们必须考虑对象和关系的松耦合。松耦合是软件设计时一个非常重要的特性,可以帮助系统不做或者做很少的变更就能扩展新功能。工厂顾名思义就是创建产品。根据产品时具体产品还是具体工厂可以分为简单工厂模式和工厂方法...

2020-03-14 19:59:28 158

转载 结构型模式---装饰器模式

文章目录1. 模式名称及概念2. 使用场景3.特征及鉴别方法4.装饰器模式的设计装饰器设计模式实现5.Java中的应用IO框架自定义数据连接池参考资料1. 模式名称及概念在实际生产中,某个类的行为(它所提供的方法)已经没法满足当前的需要了,但是又需要使用原有的部分功能,因此需要对原有对象进行增强。装饰器模式(Decorator Pattern)也叫包装器模式就是为了解决此问题而诞生的,它是对...

2020-03-13 18:29:15 115

原创 设计模式专辑

设计模式1. 什么是设计模式?软件设计模式(Software Design Pattern),又称设计模式,是指在软件开发中,经过验证的,用于解决在特定环境下、重复出现的、特定问题的解决方案。2.为什么要学习设计模式设计模式的本质是面向对象设计原则的实际运用,是对类的封装性、继承性和多态性以及类的关联关系和组合关系的充分理解。正确使用设计模式具有以下优点。可以提高程序员的思维能力、编程...

2020-03-13 11:26:16 110

原创 Leetcode刷题笔记---Array部分

Leetcode刷题笔记ArrayRemove Element作用,给定一个数组,删除数组中的某一个值,并在不开辟额外的内存空间的条件下做到,即空间复杂度是O(1)。思路,两个指针,一个快,一个慢。快的那个遍历一遍整个数组,慢的那个指针只有在不相等的时候往前走,在遇到相等时就不往前走。核心代码:i是快指针,每次都加1;res是慢指针,只有在不相等时就把当前i索引的值更新到res的位置...

2019-05-07 21:39:10 197

原创 数据结构与算法第一期:栈,链表,队列

编程学习第一次作业本周主要学习的数据结构有栈、队列和链表。需要实现一些基本的数据结构,和完成相应的LeetCode算法题。本作业都是通过Java编写的。1.栈1.1 编程实现特定需求用数组实现一个顺序栈public class ArrayStack { private String[] items; private int count; private int n; ...

2019-04-08 21:42:07 244

原创 《数据结构与编程之美》学习笔记2:算法复杂度那些事儿

“算法复杂度分析是整个算法学习的精髓,只要掌握了它,数据结构和算法的内容基本上就掌握了一半。”这句话虽然夸张了些,但是也表达出了复杂度分析的重要性。本篇博文介绍算法复杂度的大O表示法、最好、最坏、平均和均摊时间复杂度。一、如何分析、统计算法的执行效率和资源消耗?1. 为什么需要复杂度分析?事后统计法 有很大的局限性测试结果非常依赖于环境,不同配置的计算机,会产生截然不同的测试结果。...

2019-03-13 14:59:15 327 1

原创 《数据结构与编程之美》学习笔记1:为什么,怎么学数据结构与算法。

写在前面:数据结构与算法对于一个程序员来说是至关重要的,一个好的程序员和不好的程序员之间的差距可能就是算法与数据结构掌握。本篇博文也是在学习王争老师的《数据结构与算法之美》课程之后所做的笔记,方便之后回顾。一、那么为什么要学习算法呢?1.大厂面试,必考数据结构与算法。校招时,参加面试学生大多没有实际项目经验,公司考察学生基础知识是否掌握。因为这反映了一个人的长期潜力,FLAG巨头面试...

2019-03-13 10:14:46 342

空空如也

空空如也

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

TA关注的人

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