Leetcode 108 将有序数组转换为二叉搜索树 数据结构定义: 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是: ...
分类:
编程语言 时间:
2020-12-05 11:08:08
阅读次数:
9
如前所说,写程序如同给算法写壳,而算法就是流程,所以流程是程序的主角(但这个流程不一定要你来设计)。在程序中,为了配合流程(算法)的实现,除了顺序、分支与循环语句的使用,还要借助“变量”这个角色。变量是重要的角色,男二号。 ...
分类:
编程语言 时间:
2020-12-05 11:00:22
阅读次数:
12
并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学的国际国内赛题中,其特点是看似并不复杂,但数据量极大,若用正常的数据结构来描述的话,往往在 ...
分类:
其他好文 时间:
2020-12-04 11:41:44
阅读次数:
13
终极版~深拷贝 人工分割线 浅拷贝这里不做介绍了,深拷贝的实现要点,除了一定要深!还要能兼容各种类型,如函数,正则、Date等等。 其实日常业务开发中,Json.parse(Json.stringfy(obj))已经能够解决90%左右的克隆需求。还有Object.assign() Object.cr ...
分类:
编程语言 时间:
2020-12-04 11:30:47
阅读次数:
8
一、理论 并查集的定义: 并查集是一种树型的数据结构,用于处理一些不交集的合并和查询问题。一般用数组实现。 Find:确定元素属于哪一个子集,它可以被用来确定两个元素是否属于同一个子集。 Union:将两个子集合并成同一个集合。 并查集的优化: 优化1: 降低rank,提高查询效率。合并时要考虑ra ...
分类:
其他好文 时间:
2020-12-04 11:19:39
阅读次数:
6
有人说,90%的程序员都手写不出正确的二分查找 没错,我就是那90% c++的标准库里只提供了binary_search(),lower_bound(),upper_bound()三个函数,缺点就是,只能在数组或者vector这样的线性数据结构上二分 所以就需要整理一下二分的用法和代码 1,bina ...
分类:
其他好文 时间:
2020-12-04 11:17:31
阅读次数:
5
经过一段时间的数据结构与算法的学习,和学习了前人的经验,为了更好的指导自己(希望也能帮助到别人)之后数据结构与算法的学习,总结一下数据结构与算法学习的方法。以及推荐大家看看一套学习教程,有助于快速入门:https://4m.cn/7MHVd 一、记住数据结构,记住算法思想(是什么) 我觉得这个是数据 ...
分类:
编程语言 时间:
2020-12-04 11:16:07
阅读次数:
8
1. 什么是哈希表 首先有这么一种情况,有24个人编号分别为1~24,我们需要将 24 人均分成 6 个组! 编号除 6 余数为 0 的为第零组: 6、12、18、24 编号除 6 余数为 1 的为第一组: 1、7、13、19 编号除 6 余数为 2 的为第二组: 2、8、14、20 编号除 6 余 ...
分类:
编程语言 时间:
2020-12-04 10:55:51
阅读次数:
5
一、什么是顺序表 在了解顺序表之前,需要先了解什么是顺序表?顺序表是线性表的一种,线性表分为顺序表和链表。其中顺序表在java中又分为数组(最简单的顺序表)和ArrayList。为什么我们称其为顺序表呢?原因顾名思义是该数据结构在逻辑上和物理结构上的存储顺序均是连续的。下面,我们就以一张图来说明什么 ...
分类:
其他好文 时间:
2020-12-04 10:50:46
阅读次数:
7
有了二叉搜索树为什么还要红黑树,以下面几个例子举例,如下面的二叉树可以达到很好的搜索效果 5 7 11 15 19 21 25 26 61 99 再看下面这棵树,我们将下面的数据按从左至右的顺序构造一棵二叉搜索树 15 13 16 11 9 7 5 3 按照之前我们二叉搜索树构建构建的方式,我们将得 ...
分类:
编程语言 时间:
2020-12-03 12:28:09
阅读次数:
15