- 博客(89)
- 收藏
- 关注
原创 并查集(持续更新)
并查集的基本思想:将具有一定联系的节点,凑成一个集合官方解释:并查集(Union-find Data Structure)是一种树型的数据结构。它的特点是由子结点找到父亲结点,用于处理一些不交集(Disjoint Sets)的合并及查询问题。Find:确定元素属于哪一个子集。它可以被用来确定两个元素是否属于同一子集。Union:将两个子集合并成同一个集合。
2021-11-30 14:14:17 500
原创 拓扑排序(持续更新)
拓扑排序算法: 拓扑排序就是找到一个入度为0的带你加入队列后,在图中去掉该点及其与它相连的边,然后再词寻找入度为零的点直到所有的点都被遍历,由上面的过程中我们不难想到,如果图中存在环这种结构那么我们是无法遍历所有的节点的,所以拓扑排序的一个重大的应用就是可以找出不存在与环中的点例题1 在有向图中,以某个节点为起始节点,从该点出发,每一步沿着图中的一条有向边行走。如果到达的节点是终点(即它没有连出的有向边),则停止。对于一个起始节点,如果从该节点出发,无论每一步选择沿哪条有向边行走,最后必然在有限步内到
2021-11-29 14:13:28 290
原创 JS学习笔记
文章目录JavaScriptJS的编写的位置输出语句基本的语法字面量和变量字面量变量标识符数据类型六种数据类型1.String 字符串2.Number 数值3.Boolean 布尔值4.Null 空值5.Undefined 未定义引用数据类型类型转换转换为String方式一(强制类型转换):方式二(强制类型转换):方式三(隐式的类型转换):转换为Number方式一(强制类型转换):方式二(强制类型转换):方式三(隐式的类型转换):转换为布尔值方式一(强制类型转换):方式二(隐式类型转换):基础语法运算符ty
2021-10-14 23:44:53 2403
原创 Java刷题过程的一些重要知识点:
知识点1:1.位运算函数,lowbit()函数:这个函数的作用是:lowbit()函数用来取一个二进制最低位的一与后边的0组成的数例:5(101),lowbit(5)=1(1)12(1100),lowbit(12)=4(100)2.原理:其实我知道这个函数就够了,但是还是将原理放在这里方便以后看看:由于数在计算机里以补码的方式储存,运用位运算可返回只有一个位上有1的数int lowbit(int x){ return x & -x; // return x &(~x+
2021-10-14 14:02:25 434
原创 进军动态规划(持续更新):
动态规划的定义: 它的思想是将问题分解成小问题,并先解决这些小问题;理解动态规划的路线:因为这个动态规划仅靠语言我感觉很难讲清楚,我干脆吧自己的理解路线写出来你们自己去看资料,这篇博文主要更新例题:学习路线:1.先去看算法导论的动态规划篇:重点理解背包问题2.通过bilibili的视频完成理解背包问题:链接如下 https://www.bilibili.com/video/BV1K4411X7663.看《挑战程序算法竞赛》的代码:来理解动态规划的代码,并进一步理解记忆化
2021-09-20 16:11:20 197
原创 分治算法(持续更新):
分治算法的核心思想:将大问题分解为小问题,递归的将小问题解决后再将结果合并;其实知道这些就够了,掌握这种思想关键还得多刷题:例题如下:例题1:给定一棵树的前序遍历 preorder 与中序遍历 inorder。请构造二叉树并返回其根节点。(力扣:105)//现在看来递归对于一种高级算法,它更像是一种工具,这道题使用分治思想,将大问题通过递归不断化解成小问题解决class Solution { Map <Integer,Integer> map=new HashMap<
2021-09-14 18:49:45 173
原创 理解广度优先遍历(持续更新)
广度优先搜索(BFS)如何理解广度优先搜索:如果对广度优先遍历没有一点点了解的同学建议先去看看树的层次遍历,其实这就是广度优先搜索的一个应用,层次遍历的大致思路就是:将二叉树按从上往下。从左往右逐层遍历二叉树;广度优先搜索其实也是这个思路,解题时关键就是看你在这个过程中需要做些什么;如何实现广度优先搜索:我们直到其实深度优先搜索是利用了栈的这个结构,所以我i们也可以利用递归实现深度优先搜索,而广度优先搜索是利用了队列这个结构,因为本人比较喜欢使用java语言所以我实现广度优先搜索一般就使用java自带
2021-09-07 19:22:08 2874
原创 持续理解DFS(深度优先搜索)
博客的目的:博主最近在刷有关树的一些题目,遇到了很多需要递归,以及dfs(深度优先搜索的题目),但无奈大一数据结构只学了一点皮毛,最近实在忍不了,所以打算开一篇博文,记录有关dfs的理解心得,并持续更新:对DFS的概念理解:也许不接触过DFS的同学会困惑,DFS是什么?我在查阅了众多博文资料总结了一下:DFS是一种搜索手段,他从某个状态开始,不断转移状态,直到无法转移,并且没有达成目的,就退回到前一步的状态,然后从其他没有尝试过的状态入手,直到达成目的,或者将所有的状态都尝试完。(上面是挑战算法程序这
2021-09-02 17:21:54 652
原创 深入理解:直接插入排序,希尔排序,直接选择排序,堆排序,冒泡排序,快速排序,归并排序
排序算法心得:如何阅读这篇博文:我最近学习了有关排序的算法,有了不少感悟,所以打算写一篇博文记录一下,每一种算法我都会先介绍其核心思想,然后会给出相关代码,并在代码中写出相关的细节,你们在看着篇博文时建议先理解其核心思想,然后结合代码理解该算法1.直接插入排序(思路简单的排序):核心思想:将待排序序列的第一个元素与有序序列的元素进行对比找到合适的位置,并将该元素加到有序序列中去,然后再取无序序列中的第一个元素重复上述步骤,注意先前的那个元素已经加入到有序序列中去了;...
2021-06-01 17:10:26 812
原创 可直接使用的vue-element-admin complex-table模版
vue-element-admin中cpmplex-table的源码分析,以及模版提取
2022-03-14 21:26:58 1885 3
原创 深入理解java内存机制以及作用域
前言有时候只有理解了代码的底层原理,才能真正的理解代码,就例如递归这些思想,理解了底层后就会很简单,这篇文章我会先谈内存的运行机制再通过底层谈谈作用域的问题java数据区分类首先当我们运行一个java程序的时候,我们的java虚拟机会将内存分为:栈内存,堆内存,方法区,本地方法栈,程序计数器 如上图,下面详细的说一下栈内存,堆内存,方法区栈内存每当启动一个新线程(调用一个函数)的时候,java虚拟机都会为它分配一个java栈。java以栈帧为单位保存线程的运行状态。虚拟机只会对java栈执行两
2022-02-04 19:23:20 1014
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人