- 博客(366)
- 资源 (4)
- 问答 (1)
- 收藏
- 关注
原创 一棵树,怎么就平衡了(图解AVL+实现)
什么是AVL树大家好,我是bigsai,好久不见,甚是想念。对于树这种数据结构,想必大家也已经不再陌生,我们简单回顾一下。在树的种类中,通常分成二叉树和多叉树,我们熟悉的二叉树种类有二叉搜索(排序、查找)树、二叉平衡树、伸展树、红黑树等等。而熟悉的多叉树像B树、字典树都是经典多叉树。普通的二叉树,我们研究其遍历方式,因为其没啥规则约束查找和插入都很随意所以很少有研究价值。但是二叉树结构上很有特点:左孩子和右孩子,两个不同方向的孩子对应二进制的01,判断的对错,比较的大小 ,所以根据这个结构所有树左
2021-10-11 21:36:28
1312
原创 最小生成树(Prim、Kruskal)算法,秒懂!
前言在数据结构与算法的图论中,(生成)最小生成树算法是一种常用并且和生活贴切比较近的一种算法。但是可能很多人对概念不是很清楚,什么是最小生成树?一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。 最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里姆)算法求出。通俗易懂的讲就是最小生成树包含原图的所有节点而只用最少的边和最小的权值距离。因为n个节点最少需要n-1个边联通,而距离就需要采取某种策略选择恰当的边。学习最
2021-09-30 10:21:55
45535
16
原创 两个半月!出差终于结束啦
大家好,我是bigsai,自己的出差生活已彻底结束,在这里和大家share一下。持续两个半月,自己的第一次出差生活也算正式结束,这两个月写的几篇技术文都是摸鱼、熬夜偷偷整的,太不容易了。给...
2021-09-26 19:44:10
1679
1
原创 一文彻底搞定二叉树的前序、中序、后序遍历(图解递归非递归)
前言大家好,我是bigsai,在数据结构与算法中,二叉树无论是考研、笔试都是非常高频的考点内容,在二叉树中,二叉树的遍历又是非常重要的知识点,今天给大家讲讲二叉树的层序遍历。这部分很多人可能会但是需要注重一下细节。前面介绍了二叉排序树的构造和基本方法的实现,遍历也是比较重要的一环,并且二叉树的层序遍历也是bfs的最简单情况,这里我就将二叉树的层序遍历以及常考问题给大家分享一下。在了解二叉树的遍历之前,需要具备数据结构与算法有队列、递归、栈、二叉树,这些内容咱们前面都有讲过,有这方面知识欠缺的同学可以
2021-09-22 23:40:01
14420
3
转载 String s="a"+"b"+"c",到底创建了几个对象?
首先看一下这道常见的面试题,下面代码中,会创建几个字符串对象?Strings="a"+"b"+"c";如果你比较一下Java源代码和反编译后的字节码文件,就可以直观的看到答案,只创建了一...
2021-09-18 18:18:57
7843
14
原创 一次字节面试,被二叉树的层序遍历捏爆了
前言大家好,我是bigsai,在数据结构与算法中,二叉树无论是考研、笔试都是非常高频的考点内容,在二叉树中,二叉树的遍历又是非常重要的知识点,今天给大家讲讲二叉树的层序遍历。这部分很多人可能会但是需要注重一下细节。前面介绍了二叉排序树的构造和基本方法的实现,遍历也是比较重要的一环,并且二叉树的层序遍历也是bfs的最简单情况,这里我就将二叉树的层序遍历以及常考问题给大家分享一下。在了解二叉树的遍历之前,需要具备数据结构与算法有队列、递归、栈、二叉树,这些内容咱们前面都有讲过,有这方面知识欠缺的同学可以
2021-09-14 15:38:58
5014
4
原创 终点站,我来了!
前言大家好,我是bigsai,最近一段时间没怎么发技术文,一方面是因为最近比较忙,参加的项目属于冲刺阶段,另一方面,个人比较独立的时间比较少,很少能干自己的东西,但是这个日子真的要结束了,...
2021-09-07 22:38:26
1968
4
转载 杭州有哪些牛批的互联网公司
晚上好呀!我是bigsai。吃饭了不?程序员视角观城市系列已经更新有 9 期了,我们一起看了西安、长沙、天津、广州、青岛、武汉、成都、上海。除了上海和广州之外,其余的都是二线城市。最近,杭...
2021-09-05 18:18:35
8071
原创 我的第一本pdf!
大家好,我是bigsai,第一次将部分文章整理成pdf分享给大家。自己写东西断断续续也不少时间了,也写了不少东西(虽然是偏向小白),这个其实花费的时间还是比较多的,这次的话主要将数据结构与...
2021-08-30 18:21:06
3221
12
原创 (建议收藏)一文多图,彻底搞懂Floyd算法(多源最短路径)
前言在图论中,在寻路最短路径中除了Dijkstra算法以外,还有Floyd算法也是非常经典,然而两种算法还是有区别的,Floyd主要计算多源最短路径。在单源正权值最短路径,我们会用Dijkstra算法来求最短路径,并且算法的思想很简单—贪心算法:每次确定最短路径的一个点然后维护(更新)这个点周围点的距离加入预选队列,等待下一次的抛出确定。虽然思想很简单,实现起来是非常复杂的,我们需要邻接矩阵(表)储存长度,需要优先队列(或者每次都比较)维护一个预选点的集合。还要用一个boolean数组标记是否已经确定、
2021-08-27 16:11:09
37514
47
原创 (单源最短路径)一文搞懂dijkstra算法
前言大家好,我是bigsai,今天给大家讲讲Dijkstra算法,下次拿着这个算法找女神少绕路,有女朋友的可以试试行不行的通。对于Dijkstra算法,很多人可能感觉熟悉而又陌生,可能大部...
2021-08-15 18:46:35
3164
4
原创 一文彻底搞懂快速幂(原理、实现、矩阵快速幂)
前言大家好,我是bigsai,之前有个小老弟问到一个剑指offer一道相关快速幂的题,这里梳理一下讲一下快速幂!快速幂是什么?顾名思义,快速幂就是快速算底数的n次幂。你可能疑问,求n次幂算n次叠乘不就行了?当n巨大无比时候,如果需要末尾有效尾数值等信息这个可能超出计算机运算范围。有多快?快速幂时间复杂度为 O(log₂n), 与朴素的O(n)相比效率有了极大的提高(int 范围10位长度数字32次之内就能搞定,long 范围20位长度数字64次之内也能搞定,你看有多快)。用的多么?快速幂属于数
2021-08-15 00:30:00
7011
原创 9 11 7的第一周,真的顶不住
大家好,我是bigsai,很久没冒泡了,因为自己每天几乎0时间了,在这里简单分享一下。在南京七月初,我确定要被老板安排活,就陆续拒了实习和一些面试机会,老老实实跟着老板干活,刚来初始,是在...
2021-08-05 18:22:58
6001
26
原创 一文搞懂深度优先搜索、广度优先搜索(dfs、bfs)
前言你问一个人听过哪些算法,那么深度优先搜索(dfs)和宽度优先搜索(bfs)那肯定在其中,很多小老弟学会dfs和bfs就觉得好像懂算法了,无所不能,确实如此,学会dfs和bfs暴力搜索枚举确实利用计算机超强计算大部分都能求的一份解,学会dfs和bfs去暴力杯混分是一个非常不错的选择!五大经典算法的回溯算法其实也是dfs的一种应用,是不是回忆起被折磨的八皇后问题。基础的dfs和bfs学习来思想很容易,写出来模板代码也不难,但很多时候需要在此基础上灵活变通就有不小难度了。不过dfs 和bfs初步学习搞
2021-07-26 23:54:14
2482
2
转载 准大四生,现在是七月中旬,要为秋招准备什么?
今天在知乎上看到这么一个问题。如果是其它专业的可能还好,如果这个读者是计算机相关专业的,你现在问这个问题属实有点太迟了。我发现许多同学因为对校招不了解而错过了很多机会,不过这有时候跟学校的...
2021-07-22 17:06:47
2271
原创 面试大厂,我是这样准备项目的
hello,大家好,我是bigsai。最近发了字节实习面经和腾讯实习面经,刷题和八股文很多小老弟知道套路,知道该怎么去做,但是很多人比较匮乏项目这方面的经验,这方面的话我的经验也不是很多,就分享一下自己的看法,大家可以适当的看看。不过上牛客看了最近的面经和自己几轮面试经验,感觉各家对项目的重视还是蛮大的,所以提早吃透自己的项目,做好介绍和描述优化,能够在冲刺面试专心备战八股文和面经。项目重要嘛项目真的蛮重要的!对于简历模块来说,一般也就是基本信息、个人技能、竞赛荣誉、(有效)实习经验、项目经验、个
2021-07-21 10:14:46
6060
12
原创 程序员的四个暑假:从打工开始到打工结束
暑假结束,逝去的四个暑假大家好,我是bigsai。上周四回家,周五周六周日在家呆了三天,今天已经身处高铁回学校了,开启暑期打工人生活。暑假,对于很多人来说是个非常好的机会,两个月的时间相对自由,没有课程、考试压力,如果认真利用起来可以学到很多内容。自从离开高中,其实还有一个高三毕业的暑假,那个暑假大部分人可能玩了一暑假或者是做零工挣钱,反正是不会学习的,我当时的话也是在可成科技(电子厂)流水线上干了两个月夜班,每天12小时最后挣得钱一部分买了手机、一部分留作部分生活费。有很多学弟妹问我的暑假以前是
2021-07-14 09:03:37
8825
33
原创 数据流中的中位数,我轻敌了
前言大家好,我是bigsai。最近轻敌了一个高频问题,分享给大家。最近面试时候遇到一个非常有意思的hard题,面试官没让写代码让说思路,但放在正常应届生招聘那可能就要手撕了,在剑指offer的第41题和力扣【数据流中的中位数】。题目描述是这样的:中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。例如,[2,3,4] 的中位数是 3[2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一个支持以下两种操作的数据结构:void addNum(int nu
2021-07-01 21:23:42
2292
16
原创 写给小白看的硬核递归(低调点,当回小白)
本文首发公众号[bigsai] ,首发博客平台csdn,转载请找授权或附上原文链接。大家好,我是bigsai,今天给大家讲讲递归。内容很丰富,看完感觉不错还请三连支持幸苦码字!什么是递归?递归:就是函数自己调用自己。 子问题须与原始问题为同样的事,或者更为简单。递归通常可以简单的处理子问题,但是不一定是最好的解决方式。对于递归要分清以下概念:递归是自己调用自己递归通常不在意具体操作,只关心初始条件、结束条件和上下层的变化关系。递归函数需要有临界停止点(结束条件),即递归不能无限制的执.
2021-06-25 10:44:43
5493
115
原创 排个课表学会了拓扑排序!有点意思
原创不易,帅哥美女呢请三连支持一波前言大家好,我是bigsai。拓扑排序,很多人都可能听说但是不了解的一种算法。不知者大多会提出这样的疑问:这是某种排序算法?这好像是一种图论算法?图也能排序?非线性结构在传统意义上确实不太好排序,而拓扑排序它是对有向图的顶点排成一个线性序列。并且不一定唯一。什么是拓扑排序?对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边<u,v>∈E(.
2021-06-08 09:43:54
2189
5
原创 师兄刷题笔记、算法小抄、面试突击版必备资源,帮你走上人生巅峰
前言最近有很多朋友问我刷题、面试有没有什么好的资源。今天就给大家找了三个棒的开源资源,内容非常硬核,很多人靠着它进了大厂。不绕弯子,三个分别是谷歌师兄《谷歌大佬的刷题笔记》,东哥《labuladong的算法小抄》,Guide哥的《Java面试突击版》。三位大佬都是我很钦佩之人,他们把自己整理的东西开源分享,太赞了,我这边帮大家搜集到pdf版本可以直接观看。本来想在csdn上上传资源大家可以直接下载的,但是版权问题不允许,那这些开源资源pdf文件只能通过百度云方式给大家分享了。三份资源可以直接微信搜一
2021-06-02 19:51:08
7014
22
原创 学妹不懂Java泛型,非让我写一篇给她看看(有图为证)
学妹不懂Java泛型来找我,非要我写一篇Java泛型的文章!写完之后还让我写一篇集合的!累载!
2021-05-18 12:51:58
20794
47
原创 原来以为(Trie)字典树很难,后来发现不久这么一回事嘛
字典树 牛逼什么是字典树字典树,是一种空间换时间的数据结构,又称Trie树、前缀树,是一种树形结构(字典树是一种数据结构),典型用于统计、排序、和保存大量字符串。所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。可能大部分情况你很难直观或者有接触的体验,可能对前缀这个玩意没啥概念,可能做题遇到前缀问题也是暴力匹配蒙混过关,如果字符串比较少使用哈希表等结构可能也能蒙混过关,但如果字符串比较长、相同前缀较多那么使用
2021-05-12 19:30:50
2235
20
原创 都写了100+原创了,是该分类整理一下
前言大家好,我是bigsai,最近一看公众号,哇都100+原创了,有些老铁建议我搞个目录因为有的文章翻来翻去不太好找,我之前本来想更的基本数据结构与算法差不多再搞的,但是可能还需要一段时间...
2021-05-09 19:08:06
2164
7
原创 面试官让我手写队列,差点没写出来,回来后赶忙把重点记下来
微信搜一搜【bigsai】更多精彩点赞的帅哥美女祝你们越学越猛目录前言队列介绍普通队列循环队列(数组实现)循环队列(链表实现)双向队列(加餐)总结前言栈和队列是一对好兄弟,前面我们介绍过一篇栈的文章(栈,不就后进先出),栈的机制相对简单,后入先出,就像进入一个狭小的山洞,山洞只有一个出入口,只能后进先出(在外面的先出去,堵在里面先进去的就有点倒霉)。而队列就好比是一个隧道,后面的人跟着前面走,前面人先出去(先入先出)。日常的排队就是队列运转形式的一个描述!栈是一种喜新厌旧的数据结构,来了新的就.
2021-05-07 14:59:42
5613
22
原创 这样给面试官解释约瑟夫环问题的几种巧妙解法,面试官满意的笑了
转载请联系公众号:bigsai前言约瑟夫环问题是算法中相当经典的一个问题,其问题理解是相当容易的,并且问题描述有非常多的版本,并且约瑟夫环问题还有很多变形,这篇约瑟夫问题的讲解,一定可以带你理解通通!什么是约瑟夫环问题?约瑟夫环问题在不同平台被"优化"描述的不一样,例如在牛客剑指offer叫孩子们的游戏,还有叫杀人游戏,点名……最直接的感觉还是力扣上剑指offer62的描述:圆圈中最后剩下的数字。问题描述:0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m.
2021-05-06 10:37:03
1923
1
原创 并查集,不就一并和一查?
什么是并查集并查集这种数据结构,可能出现的频率不是那么高,但是还会经常性的见到,其理解学习起来非常容易,通过本文,一定能够轻轻松松搞定并查集!对于一种数据结构,肯定是有自己的应用场景和特性...
2021-04-27 19:57:02
1914
9
原创 栈这种数据结构,不就后进先出?
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈。
2021-04-26 10:38:40
1898
7
转载 高并发下如何保证接口的幂等性?
前言接口幂等性问题,对于开发人员来说,是一个跟语言无关的公共问题。本文分享了一些解决这类问题非常实用的办法,绝大部分内容我在项目中实践过的,给有需要的小伙伴一个参考。不知道你有没有遇到过这...
2021-04-20 18:45:00
1559
原创 (加强版)大数加减乘除,一文彻底搞定
前言大家好,我是bigsai!(上次发布的忘加原创并且今天的把内容扩充了一下)最近,大数加减频频登上笔试的舞台,小伙伴们在群里也分享自己遇到面试官碰到大数运算的题目,想着这么重要而简单的知...
2021-04-19 18:50:00
2329
19
原创 结合大学四年经验,带你揭秘高效自学Java的方法和路线(从认识、方法、反馈3个角度出发)
自学Java的常见问题和路线都在这,本文就自学Java的n个问题和n个方法做出一些建议,并且推荐了一条自学Java的路线,比较适合一些新入门的小白。
2021-04-15 15:07:39
7236
13
原创 掉一根头发,搞定二叉排序(搜索)树
前言前面介绍学习的大多是线性表相关的内容,把指针搞懂后其实也没有什么难度,规则相对是简单的,后面会讲解一些比较常见的数据结构,用多图的方式让大家更容易吸收。在数据结构与算法中,树是一个比较大的家族,家族中有很多厉害的成员,这些成员有二叉树和多叉树(例如B+树等),而二叉树的大家族中,二叉搜索树(又称二叉排序树)是最最基础的,在这基础上才能继续拓展学习AVL(二叉平衡树)、红黑树等知识。对于二叉排序树而言,本章重点关注其实现方式以及插入、删除步骤流程,我们会手写一个二叉排序树,二叉树遍历部分的内容比
2021-04-06 19:33:53
2155
4
动态规划30道经典问题图解解析(bigsai本人原创)
2022-03-07
软件系统压力测试.doc
2019-06-13
python爬虫教程(html样式)
2018-11-21
ES用RestClient还是RestHighLevelClient?
2019-03-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅