自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小识的博客

放弃很容易,但坚持一定很酷

  • 博客(16)
  • 资源 (14)
  • 收藏
  • 关注

原创 复杂度分析:如何进行时间复杂度和空间复杂度分析?

如何衡量算法的优劣?对于同一个问题,可能有很多种解决的套路,这个解决问题的套路就是算法。比如有如下一个问题,1-100的和是多少你可以能会写出如下方案for (int i = 1; i <= 100; i++) { sum += i;}如果你的数学基础稍微好一点,你可能就会写出如下解决方案sum = (1 + 100) * 50;这2个方案哪个好呢?你肯定会说第二个,因为第二个执行的时间更短。我们一般从时间 和空间 方面衡量算法的时候复杂度时间复杂度:执行当前算法所耗费.

2021-08-30 16:00:20 240

原创 队列:从普通队列到单调队列

优先队列队列也是一种被频繁使用的数据结构。队列主要分为有如下三种普通队列:消息队列就是一种普通队列,用来进行进程间通信优先队列:银行排队办理业务这种场景就能用到,如果有vip客户,则先给vip客户服务,没有vip客户,则按照排队次序服务单调队列:用来求滑动窗口的最值合并K个升序链表题目地址:LeetCode 23. 合并K个升序链表给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。输入:lists = [[1,4,5],[1,3,4],[2.

2021-08-26 19:54:29 194

原创 栈:从普通栈到单调栈

栈的应用场景栈是一种先进后出的数据结构(类比弹夹),在程序执行过程中,栈可以说是应用最广泛的数据结构之一了。Java方法执行的时候会把方法的相关信息封装到一个栈帧放入虚拟机中。例如当methodOne调用methodTwo,methodTwo调用methodThree执行时,虚拟栈如下所示。当methodThree执行完毕则会出栈,methodTwo执行完毕出栈。即方法调用入栈,方法执行出栈简单的一个表达式计算的过程也会用到操作数栈(100+200)*300的计算过程如下将100入栈将2.

2021-08-24 17:32:13 188

原创 搜索:DFS和BFS遍历图的方式有哪些不同?

应用场景DFS和BFS都是对图进行遍历的算法(树的图的一种),二者的区别只是对图遍历的策略不同DFS:按照一个方向遍历,直到不能遍历了,才换一个方向遍历。BFS:从起点开始,依次对周边的节点进行遍历,遍历完再对周边节点的周边节点再进行遍历,以此类推,直到把图遍历完。我们以迷宫演示一下DFS和BFS遍历的过程。假设有一个4*4的迷宫,其中标为红色的区域不能经过,问能否从迷宫的(0,0)这个坐标移动到(3,3)这个坐标我们遍历时要按照一个固定的策略对每个节点的4个方向都进行遍历,这样才不会漏掉,假设.

2021-08-23 19:20:25 502

原创 递推和递归:一个自下而上,一个自上而下

解决问题的思路不同递推和递归是常见的解决问题的思路,在很多算法中都会用到,例如DFS算法基于递归实现,动态规划算法基于递推实现。递推是从上到下解决问题,如想知道一个国家有多少人,我们从村这个一个行政级别开始,依次向上汇报,最后到国这个级别就能知道一个国家有多少人递归是从上到下解决问题,如想知道一个国家有多少人。国家发布命令让各个省上报各自的人数,各个省又发布命令让各自市上报各自的人数,依次类推,最后到达村这个级别,开始统计自己的人数(递推出口),统计完后逐级上报,最后到国这个级别就能知道一个国家有多.

2021-08-22 20:58:14 1505

原创 树:熟练手写树的四种遍历方式

树的四种遍历方式树也是一种用来提高查询效率的数据结构(和哈希表类似)。例如MySQL中的索引就可以基于B+树或者哈希表构建,MongoDB用B树(也称为B-树)来实现索引。很多关于树的面试题其实都不难,基本上是基于树的四种遍历方式来实现的,所以熟练手写树的四种遍历方式非常重要我们先说前中后序这三种遍历方式前序遍历:根,左,右中序遍历:左,根,右后序遍历:左,右,根发现规律没?左右的位置始终不变,前序遍历,根在前面,中序遍历,根在中间,后序遍历根在最后。前序遍历:A B C D E F.

2021-08-22 18:30:57 764

原创 动态规划:更高效的穷举!

介绍动态规划并不是一种具体的算法,而是一种思想,个人觉得就是缓存+枚举,把求解的问题分成许多阶段或者多个子问题,然后按顺序求解各子问题。前一子问题的解为后一子问题提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其他局部解。依次解决各子问题,最后一个子问题就是初始问题的解。所以动态规划一般用来求最优解(对子问题进行决策),求种类数(对子问题进行加和)先分享几个经典的动态规划实现,后续再分析几个面试题最长上升子序列来源:LeetCode 300.

2021-08-22 17:35:40 378 1

原创 哈希:更高效的查找!

面试必问的HashMap我们在开发的过程中经常会用到HashMap来保存键值对,实现的主要思路,就是通过hash函数确定对应的key应该放在数组的哪个位置。当要放的位置发生冲突时,就需要解决冲突,一般情况下有两种如下方法开放寻址法(当要放的位置上有值的时候,依次找数组的下一个位置,看是否有空位)链表法(用链表存储发生冲突的元素)当我们想要保证放入的key有序时,我们就可以用LinkedHashMap,LinkedHashMap=哈希表+双向链表哈希算法在Java中的应用有集合类HashM.

2021-08-22 17:33:24 230

原创 开篇:拒绝盲目刷题,如何更高效的学习算法?

为什么要学习算法?相信很多人的答案是为了面试。因为普通开发工程师在工作中用到复杂算法的概率很低那么面试官为什么要面试算法呢?考算法的本质是考智商,算法学的好的同学智商都不会太差,智商高也就更容易解决工作中遇到的问题优中选优(俗称内卷),当大家八股文都背的很六的时候,只能通过更难的东西来筛选一下了如何提高算法水平呢?在校生可以多参加算法竞赛,例如ACM国际大学生程序时机竞赛(能深刻认识到人与人之间的差距有多大,哈哈),中国大学生程序设计竞赛(CCPC),蓝桥杯,各种在线的算法竞赛如,Co.

2021-08-22 14:39:45 635

原创 堆:求解 TopK

堆这篇文章我们来手写一下堆排序,首先我们来解释一下什么是堆?堆是一种数据结构,需要满足如下几个特性堆是一颗完全二叉树(生成节点的顺序是从左往右,从上往下依次进行)堆中某个节点值总是不大于或者不小于其父节点的值将根结点最大的堆叫做最大堆或大根堆,根结点最小的堆叫做最小堆或小根堆大根堆和小根堆如下图所示假设有如下一个完全二叉树,如何将它调整为一个堆呢?可以看到10及其子节点符合条件,3及其子节点符合条件,4这个节点不符合条件。所以要对4这个节点进行调整,调整的过程称为heapify.

2021-08-19 23:42:23 554

原创 回溯:就是一个遍历决策树的过程

从八皇后问题说起八皇后问题是一个古老的非常有意思的问题。时间退回到1848年,国际西洋棋棋手马克斯·贝瑟尔提出了这样的一个问题在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问一共有多少种摆法。此时我们就可以枚举所有的可能性,如下图为一个4皇后枚举的过程。当然枚举的过程我们并不是想到啥就写啥,而是按照一定的规则,枚举所有的可能性。按照行和列依次递增来枚举所有的可能性。第0行依次在第0,1,2,3列放第一个,接着放第二行。在枚举的过程中,.

2021-08-18 00:12:46 349 1

原创 排序:十大经典排序算法有哪些应用?

冒泡排序从头开始,依次比较数组中相邻的2个元素,如果后面的数比前面的数大,则交换2个数,否则不交换。每进行一轮比较,都会把数组中最大的元素放到最后面。如下图,一轮比较的过程如下当数组中有n个元素时,只需要进行n轮比较,则整个数组就是有序的public static void bubbleSort(int[] a) { // 进行i轮比较 for (int i = 0; i < a.length - 1; i++) { for (int j = 0; j < .

2021-08-15 19:15:52 1413

原创 链表:指针操作有点乱?这些技巧要记好!

链表不难,但是容易乱当我们遇到链表类型的面试题时,一般都不会太难。但是很容易写错,因为经常容易搞错链表的指向关系,并且忽略对边界的处理。本节我们就以常见的链表题给大家演示几个常用的小技巧假头新链表双指针后面演示用到的链表类定义如下public class ListNode { int val; ListNode next; ListNode() {} ListNode(int val) { this.val = val; } .

2021-08-14 18:30:31 306

原创 贪心:每次都选局部最优解

思想很简单的贪心贪心算法是在每一步选择中都采取当前最好的或者最优的选择,从而导致最终的结果是最好的或者最优的。贪心算法可以解决解决一些最优化问题,如求图中的最小生成树,求哈夫曼编码。算法的思想还是比较容易理解的,难的是问题能否用贪心解决,贪心的具体策略是什么?如,给你一箱苹果,最多只能拿三个,你会怎么选择?肯定每次都是拿最大的了,这样最终拿到的苹果肯定是最重的但是有些问题,如果每次都是选择局部最优解,有可能最终结果不是最优解如有这样一个数塔,一个人可以从一个格子移动到和它相邻的2个格子,从塔顶.

2021-08-11 23:33:31 1311

原创 二分查找:加倍缩小搜索区间

二分思路和模版二分这种算法我们在很小的时候肯定就已经接触过了,很多智力题都可以用二分来解决。比如AB2地之间的电线断了,如何快速确定电线在哪里断了?我们每次都是到一段电线的中间去找给12个小球和一个天平,其中一个小球的质量和其他的小球不同,称3次把那个质量不同的小球找出来二分算法最主要的应用场景就是判断指定数在有序数组中是否存在,注意是有序数组二分算法可以算作是双指针的一种经典应用。二分算法的模版如下所示,其中变化的部分就是确定搜索区间的过程,我们要根据搜索区间的不同来赋不同的值。publ.

2021-08-08 23:33:34 462

原创 位操作:省时间,省空间,提效率

三种常见的位操作记得我刚玩Linux系统的时候,经常会遇到权限不足的问题,然后一个chmod 777 命令就稿定了。这个命令背后做了啥事呢?我们还得从Linux文件聊起Linux下一个文件一经创建,就具有三种访问方式读,可以显示该文件的内容写,可以编辑或删除它执行,如果该文件是一个shell脚本或者程序按照所正对的用户,文件的权限可以分为三类文件属主,创建该文件的用户同组用户,文件属主所在用户组的任何用户其他用户,不包含文件属主的其他用户组中的用户[root@VM_0_14_c.

2021-08-08 12:50:08 153

mybatis-generator-core-1.3.5.jar

支持接口和XML更名的mybatis-generator,具体使用参考 https://blog.csdn.net/zzti_erlie/article/details/99606620

2019-08-15

MongoDB权威指南第2版(书签,高清).zip

MongoDB权威指南第2版(书签,高清).zip,MongoDB权威指南第2版(书签,高清).zip

2019-05-14

Linux系统命令及Shell脚本实践指南

Linux系统命令及Shell脚本实践指南,书签,清晰,完整版

2019-04-17

Maven实战(高清完整带书签)

Maven实战高清完整带书签,Maven实战高清完整带书签,Maven实战高清完整带书签,Maven实战高清完整带书签

2018-01-09

将doc文件批量转为docx文件,用python将doc文件批量转为docx文件

用python将doc文件批量转为docx文件,用python将doc文件批量转为docx文件,

2017-12-28

Spring MVC学习指南

Spring MVC是Spring框架中用于Web应用快速开发的一个模块,其中的MVC是Model-View-Controller的缩写。作为当今业界最主流的Web开发框架,Spring MVC已经成为当前最热门的开发技能,同时也广泛用于桌面开发领域。, 本书重在讲述如何通过Spring MVC来开发基于Java的Web应用。全书共计12章,分别从Spring框架、模型2和MVC模式、Spring MVC介绍、控制器、数据绑定和表单标签库、传唤器和格式化、验证器、表达式语言、JSTL、国际化、上传文件、下载文件多个角度介绍了Spring MVC。除此之外,本书还配有丰富的示例以供读者练习和参考。, 本书是一本Spring MVC的教程,内容细致、讲解清晰,非常适合Web开发者和想要使用Spring MVC开发基于Java的Web应用的读者阅读。

2017-10-13

用Python将Word中的内容写入Excel

用Python将Word中的内容写入Excel

2017-08-28

Qt实现多语言的切换

Qt实现国际化,能切换程序的语言

2017-02-25

Qt加载字体文件删除字体文件

Qt加载自己的字体,不用系统提供的QFontComboBox

2017-02-25

Qt实现字体文件的加载和删除

Qt实现字体文件的加载和删除

2017-02-25

Qt实现语言切换

Qt实现语言切换

2017-02-23

Qt5串口助手V2.0(能记录上次打开的文件)

Qt5串口助手V2.0(能记录上次打开的文件)

2016-09-27

Qt5串口助手

用Qt5自身的类库开发的串口助手

2016-09-26

空空如也

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

TA关注的人

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