617 1 分钟

# 二叉树 - 概述 二叉树的定义是:树中每一个节点最多只有两个 孩子,如比说 下图中的 1 跟 3 它们各自都有 两个孩子 当然也可以只有一个孩子,也可以没有孩子 没有孩子的节点 称之为 叶子节点 而树的 起始节点 1 称之为 根节点 也叫 root 节点 二叉树的存储方式 ,可以用 树节点来 表示二叉树,另外一种就是用数组来表示二叉树 # 遍历 # 遍历也分为两种 广度优先遍历 (Breadth-first order):尽可能先访问距离跟最近的节点,也称为 层序遍历 层序遍历 - 在之前的 leetcode 题中 有写过 就是 先拿到根节点判断有无左右孩子...
7.7k 7 分钟

# 二叉搜索树的实现 创建二叉搜索树的结构: 可以把 BSTree1 看作为 java 中的 map 集合他们做的事情都是类似的 // Binary Search Tree 二叉搜索树public class BSTree1 { // 根节点 BSTNode root; // 节点类 static class BSTNode { int key; Object value; BSTNode left; BSTNode right; // 根据 key 创建节点的 public BSTNode(int key) { this.key =...
1k 1 分钟

# 数据结构和算法的重要性🎄 算法是程序的灵魂,优秀的程序可以在海量数据计算时,依然保持高速计算 一般来讲,程序会使用了内存计算框架 (比如 Spark) 和缓存技术 (比如 Redis 等) 来优化程序,再深入的思考一下,这些计算框架和缓存技术,它的核心功能是哪个部分呢? 拿实际工作经历来说,在 Unix 下开发服务器程序,功能是要支持上千万人同时在线,在上线前,做内测,一切 OK 后,可上线后,服务器就支撑不住了,公司的 CTO 对代码进行优化,再次上线,坚如磐石,你就能感受到程序是有灵魂的,就是算法。 目前程序员面试的门槛越来越高,很多一线 IT 公司...
70k 1:03

# 树结构实际应用 # 堆排序 堆排序基本介绍 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为 O (nlogn),它也是不稳定排序。 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆 <strong style="color:red"> 注意 </strong>: 没有要求结点的左孩子的值和右孩子的值的大小关系。 每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆 #...
27k 25 分钟

# 排序算法的介绍 排序也称排序算法 (Sort Algorithm),排序是将一 组数据,依指定的顺序进行排列 的过程。 排序不是数据结构而是算法 排序的分类: 内部排序: 指将需要处理的所有数据都加载 到内部存储器 (内存) 中进行排序。 外部排序法: 数据量过大,无法全部加载到内 存中,需要借助外部存储 (文件等) 进行 排序。 常见的排序算法分类 (见下图): # 算法的时间复杂度 度量一个程序 (算法)...
45k 41 分钟

# 数据结构和算法 # 稀疏数组和队列 # 稀疏 sparsearray 数组 先看一个实际的需求 。 编写的五子棋程序中,有存盘退出和续上盘的功能。 分析问题: 因为该二维数组的很多值是默认值 0,因此记录了很多没有意义的数据 -> 使用稀疏数组对二维数组进行压缩。 基本介绍。 当一个数组中大部分元素为 0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方法是: 记录数组一共有几行几列,有多少个不同的值。 把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模。 二维数组 转 稀疏数组的思路: 遍历...
4.8k 4 分钟

# 二分查找 [TOC] 先了解一下简单查找:很简单就是一个一个的查找效率非常低,打个比方都玩过的猜数字游戏,小明心里想着一个 1 到 100 之间其中一个数组让小李猜这个数字是多少,如果小李一个一个的从 1 开始猜到 100 那么显然是很慢很笨拙的,我们再来说说二分查找,回到主题就是将问题拆分为半,让小李同学不再一个一个的去试 在二分查找中,目标元素的查找区间的定义十分重要,不同的区间的定义写法不一样 因为查找的区间是不断迭代的,所以确定查找的范围十分重要,主要就是左右区间的开和闭的问题,对应的迭代方式也不一样有以下两种方式: 左闭右闭 [left,right] 左闭右开...
400 1 分钟

@Configuration@MapperScan("com.dkx.mapper")public class MybatisPlusConfig { /** * 新的分页插件 * 需要设置 MybatisConfiguration#useDeprecatedExecutor = false * 避免缓存出现问题 (该属性会在旧插件移除后一同移除) */ @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor...
306 1 分钟

在 idea 中使用 vim,insert 模式用中文输入法,切换到 normal 模式后仍然是中文,针对这个痛点,idea 中有 ideaVimExtension 插件可以解决 首先要安装 ideaVimExtension 插件,然后在 .ideavimrc 文件中配置两个代码如下: set keep-english-in-normal " 开启输入法自动切换功能 set keep-english-in-normal-and-restore-in-insert " 回到insert模式时恢复输入法 如果配置后,不生效则进行下一步操作 打开设置选择...
569 1 分钟

# "Npcap Loopback Adapter" 没有有效的 IP 配置 电脑能连上 wifi,但是不能使用有线,疑难解答显示如下 # 解决方法: 1、查看相关服务是否被禁用: 打开【运行】(Win+R 组合键),输入 services.msc 点击确定,打开服务界面。 在服务界面中找到【Wired AutoConfig】和【WLan AutoConfig】两个服务。如果未运行,首先右击选择【属性】,将 “启动类型” 修改为 “自动”,点击【应用】,然后点击【启动】—【确定】即可。 2、重新启用网络: 在开始菜单上单击鼠标右键,在弹出的菜单中点击...