数据结构
文章平均质量分 54
理论为主,适当加以代码说明
Bonjour~Bridge
踏踏实实做基础的技术学习
展开
-
动态规划:0-1背包问题
0-1背包问题原创 2022-11-21 16:54:46 · 425 阅读 · 0 评论 -
好代码:如何优雅的实现数据的排列组合
优雅的实现数组元素的排列组合原创 2022-11-21 15:34:56 · 263 阅读 · 0 评论 -
算法:归并排序的用处
归并排序不用于排序,范围更多是为了统计前后下标关系的情况原创 2022-11-06 22:26:18 · 298 阅读 · 0 评论 -
凸包问题-Graham 算法
这里我只是想记录一下凸包问题,我发现如果要把他讲解非常清楚,需要画比较复杂的集合图形,而我不会。所以,这篇文章可能只能帮你梳理一下算法步骤或者参考一下代码。什么是凸包问题找一条线,能够将二维平面上的所有的点围起来,返回这条线上的所有的点,解决凸包的算法很多,比如Jarvis 算法、Graham 算法、Andrew 算法。我这里主要记录Graham 算法的过程步骤我们需要找到P0点,P0点的特征是,y最小,如果有多个,那么去取最右边的,也就是x最大的,然后我们将P0点放在首位以P0为原点,将剩原创 2022-05-17 21:05:56 · 874 阅读 · 0 评论 -
动态规划-解决编辑距离的问题
这是LeetCode的72题,好久没有做动态规划了,所以碰到这道题,第一反应完全没有想到动态规划,所以记录下来,以提示自己,同时也分享给大家,我写的不好,也可以参照官方题解原题72. 编辑距离给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符 示例 1:输入:word1 = "horse", word2 = "ros"输出:3解释:horse.原创 2022-05-14 11:57:05 · 218 阅读 · 0 评论 -
数据结构:树状数组(BitTree)
作用如果你需要经常修改一个数组中的值,同时又需要计算这个数组的前N项和,此时,你希望计算和的效率高一点的时候,就可以尝试树状数组关键方法update(i, v):更新第i个元素,加上Vsum(n): 查询序列前N个元素的和lowbit(int i):这个研究他的特征,不如直接打印结果,然后去感受效果更好我的理解过程我先把 lowbit(int i),也就是 i & -i,的结果,for循环全部打印尝试了一遍(代码注释中有)然后尝试理解update 和 sum的概念,然后DEBUG一原创 2022-03-01 23:31:01 · 534 阅读 · 0 评论 -
数据结构与算法分析:数组和链表
表 ADT常见的表分为:数组、链表2种形式形式假设:我国偏僻的山区中有个小村庄,叫A村,村里面有陈一、刘二、张三、李四、王五、赵六6个村民,村里还有一位非常聪明的村长什么是数组呢?现在这六个村民要修房子,于是村长就给6个村民划分了一块土地,让陈一、刘二、张三、李四、王五、赵六他们依次修改一块,就像下面一样:012345陈一刘二张三李四王五赵六...原创 2020-04-23 15:12:22 · 284 阅读 · 0 评论