数据结构与算法
文章平均质量分 51
数据结构与算法
zmykkd
以悠悠之生,立一技之长。
展开
-
数据结构与算法
学习思路学习资料及途径: b栈视频、某课网、csdn博客学习时间:202104-学习目标:面向找工作模块分类递归动态规划查找回溯算法动态规划动态规划动态规划原创 2021-02-24 11:32:54 · 76 阅读 · 0 评论 -
0-1 背包问题
题目就是这么简单,一个典型的动态规划问题。题目就是这么简单,一个典型的动态规划问题。这个题目中的物品不可以分割,要么装进包里,要么不装,不能说切成两块装一半。这也许就是 0-1 背包这个名词的来历。 这也许就是 0-1 背包这个名词的来历。解决这个问题没有什么排序之类巧妙的方法,只能穷举所有可能,根据 动态规划套路详解 中的套路,直接走流程就行了。第一步要明确两点,「状态」和「选择」。先说状态,如何才能描述一个问题局面?只要给定几个可选物品和一个背包的容量限制,就形成了一个背包问题,对不对?所以.原创 2021-08-19 09:15:31 · 134 阅读 · 0 评论 -
排序算法
《忆排序》选泡插, 选择 冒泡 插入快归堆希统计基, &n..原创 2021-03-03 11:56:23 · 1168 阅读 · 2 评论 -
动态规划
动态规划动态规划是把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再根据子问题的解以得出原问题的解。动态规划往往用于优化递归问题,例如斐波那契数列,如果运用递归的方式来求解会重复计算很多相同的子问题,利用动态规划的思想可以减少计算量。通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,具有天然原创 2021-01-29 10:45:24 · 177 阅读 · 0 评论 -
回溯算法
回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就 “回溯” 返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为 “回溯点”。许多复杂的,规模较大的问题都可以使用回溯法,有“通用解题方法”的美称。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试...原创 2021-02-18 15:25:43 · 216 阅读 · 0 评论 -
红黑树
红黑树待整理原创 2021-05-01 23:11:49 · 49 阅读 · 0 评论 -
LRUCache
import java.util.HashMap;class LRUCache { class Node { public int key, val; public Node next, prev; public Node(int k, int v) { this.key = k; this.val = v; } } // key -> Node(key, val)原创 2021-08-10 20:57:24 · 102 阅读 · 0 评论 -
数据结构
在这里插入图片描述原创 2021-05-01 14:16:23 · 98 阅读 · 0 评论 -
Java的集合
小试牛刀:public static void main(String[] args) { Object b =new ArrayList(); List b1=(List)b; b1.add("12"); System.out.println(b1.add("126")); b1.add(0,1); for (var b3:b1 ) { System.out.printl...原创 2021-04-24 14:53:42 · 79 阅读 · 0 评论 -
java移位运算符详解
参考原创 2021-03-03 17:31:13 · 95 阅读 · 1 评论 -
对数器
对数器的概念和使用1,有一个你想要测的方法a2,实现复杂度不好但是容易实现的方法b3,实现一个随机样本产生器4,把方法a和方法b跑相同的随机样本,看看得到的结果是否一样。5,如果有一个随机样本使得比对结果不一致,打印样本进行人工干预,改对方法a或者方法b6,当样本数量很多时比对测试依然正确,可以确定方法a已经正确。小案例:import java.util.Arrays;public class Code03_InsertionSort { public static void.原创 2021-03-03 17:14:54 · 137 阅读 · 1 评论 -
二分查找
二分法的详解与扩展1)在一个有序数组中,找某个数是否存在2)在一个有序数组中,找>=某个数最左侧的位置3)局部最小值问题原创 2021-03-03 17:00:04 · 104 阅读 · 1 评论 -
位运算
^ 异或运算符异0 同1 (又称无进位相加)0 , 0 -> 01 , 1 -> 00 , 1 -> 11原创 2021-03-02 18:16:48 · 209 阅读 · 2 评论 -
贪心算法求解
贪心算法贪心算法求解问题时,会将问题分为若干个子问题,可以将其想象成俄罗斯套娃,利用贪心的原则从内向外依次求出当前子问题的最优解,也就是该算法不会直接从整体考虑问题,而是想要达到局部最优。只有内部的子问题求得最优解,才能继续解决包含该子问题的下一个子问题,所以前一个子问题的最优解会是下一个子问题最优解的一部分,重复这个操作直到堆叠出该问题的最优解。贪心算法最关键的部分在于贪心策略的选择,贪心选择的意思是对于所求问题的整体最优解可以通过一系列的局部最优选择求得。而必须注意的是,贪心选择必须具备无后效性,也原创 2021-02-03 14:54:30 · 374 阅读 · 0 评论 -
查找--二分查找基础1
#704. 二分查找解题思路标签:二分查找过程: 设定左右指针 找出中间位置,并判断该位置值是否等于 target nums[mid] == target 则返回该位置下标 nums[mid] > target 则右侧指针移到中间 nums[mid] < target 则左侧指针移到中间时间复杂度:O(logN)给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如原创 2021-02-01 14:35:10 · 224 阅读 · 0 评论