读序
动态规划计算 动态规划计算
什么是动态规划动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。 所以动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直
2022-10-11
贪心算法 贪心算法
什么是贪心贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 贪心算法一般分为如下四步: 将问题分解为若干个子问题 找出适合的贪心策略 求解每一个子问题的最优解 将局部最优解堆叠成全局最优解 贪心没有套路,说白了就是常识性推导加上举
2022-09-27
二叉树计算 二叉树计算
二叉树的种类在我们解题过程中二叉树有两种主要的形式:满二叉树和完全二叉树。 满二叉树满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。 如图所示: 这棵二叉树为满二叉树,也可以说深
2022-09-02
栈和队列计算 栈和队列计算
原理队列是先进先出,栈是先进后出。 栈提供push 和 pop 等等接口,所有元素必须符合先进后出规则,所以栈不提供走访功能,也不提供迭代器(iterator)。 不像是set 或者map 提供迭代器iterator来遍历所有元素。 栈是
2022-08-29
哈希表和字符串计算 哈希表和字符串计算
哈希表哈希表是根据关键码的值而直接进行访问的数据结构。 那么哈希表能解决什么问题呢,一般哈希表都是用来快速判断一个元素是否出现集合里。 哈希函数 通过hashCode把名字转化为数值,一般hashcode是通过特定编码方式,可以将其他数据
2022-08-20
数组和链表计算 数组和链表计算
数组数组下标都是从0开始的。 数组内存空间的地址是连续的 正是因为数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址。 例如删除下标为3的元素,需要对下标为3的元素后面的所有元素都要做移动操作,如图
2022-08-19
回溯算法 回溯算法
什么是回溯法回溯法也可以叫做回溯搜索法,它是一种搜索的方式。 回溯法的效率 因为回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案 回溯法解决的问题回溯法,一般可以解决如下几种问题: 组合问题:N个数里面按一定规则找出k个数的集合 切
2022-08-14
算法与数据结构之树结构实际应用 算法与数据结构之树结构实际应用
堆排序堆排序基本介绍 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为 O(nlogn),它也是不稳定排序。 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值
2022-01-11
算法与数据结构之树结构的基础部分 算法与数据结构之树结构的基础部分
树结构的基础部分二叉树为什么需要树这种数据结构 数组存储方式的分析优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低 [示意图]画出操作示
2022-01-10
算法与数据结构之哈希表 算法与数据结构之哈希表
哈希表哈希表(散列)-Google 上机题 看一个实际需求,google 公司的一个上机题: 有一个公司,当有新的员工来报道时,要求将该员工的信息加入(id,性别,年龄,住址..),当输入该员工的 id 时,要求查找到该员工的 所有信息.
2022-01-09
算法与数据结构之查找算法 算法与数据结构之查找算法
查找算法查找算法介绍在 java 中,我们常用的查找有四种: 顺序(线性)查找 二分查找/折半查找 插值查找 斐波那契查 线性查找算法有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此
2022-01-08
算法与数据结构之排序算法 算法与数据结构之排序算法
排序算法排序算法的介绍排序也称排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。 排序的分类: 内部排序: 指将需要处理的所有数据都加载到内部存储器(内存)中进行排序。 外部排序法: 数据量过大,无法
2022-01-07
1 / 2