完全背包问题 基本概念背包问题是动态规划中的一个经典分支,典型的背包问题就是给定一个有容量上限的背包,再给定一系列的物品,每个物品都有其重量和价值。要求在放入背包的物品重量不超过背包容量上限的条件下,获得最大的价值。 以上是背包问题的基本概念,根据拿取物品的规则不同(每个物品只能拿一个,或可以拿多个等)背包问题又可以细分为多个类别。此处只关注基础的两种背包问题,即01背包和完全背包。 如上图所示,根据物品数量 2024-04-01 算法 #算法
01背包问题 基本概念背包问题是动态规划中的一个经典分支,典型的背包问题就是给定一个有容量上限的背包,再给定一系列的物品,每个物品都有其重量和价值。要求在放入背包的物品重量不超过背包容量上限的条件下,获得最大的价值。 以上是背包问题的基本概念,根据拿取物品的规则不同(每个物品只能拿一个,或可以拿多个等)背包问题又可以细分为多个类别。此处只关注基础的两种背包问题,即01背包和完全背包。 如上图所示,根据物品数量 2024-04-01 算法 #算法
hexo6下图片插件异常 问题描述在hexo6下,之前通过使用插件hexo-asset-image可以很方便的在文章中插入图片。具体使用方法网上都有,不在赘述。这次遇到的问题是这个插件生成的静态页面上所有图片都无法显示。 问题根因根本原因是插件最终替换的图片路径错误。正确的路径应该是 网页地址/年/月/日/图片.png。但是在hexo6下,最终的图片路径只剩下图片.png了。 解决方 2024-03-31 常用工具 > hexo #踩坑 #框架
前缀树 基本概念前缀和算法用于快速搜索文本中出现过的关键词,比如给你一个词,让你判断这个词在某篇文章中是否出现过,或者这个词的前缀是否出现过等等。可以应用在自动补全和拼写检查等领域内。文本数据库ElasticSearch也适用这种结构来存储数据。 算法的基本想法如下,要想快速搜索单词,将树和哈希字典结合将是不二选择。考虑如下数据结构,一棵树的每一个节点都是一个哈希字典,字典的key是字母,字典的value 2024-03-31 算法 #算法
二分查找 基本概念二分查找用于在有序的数组中快速找到目标值,使用的前提是有序,这个顺序可以有很多变形,总结起来就是这个数组中的元素要按照一定的规律排列。具体做法就是看数组中间的元素是否满足要求,如果不满足,则根据有序的前提,这个数组中一半的元素一定不满足要求,从另一半中继续看中间元素是否满足,直到找到目标。 基础实现12345678910111213141516171819class Solution &# 2024-03-29 算法 #算法
并查集 基本描述并查集用于分类,快速将一堆元素根据相对关系分成几个子集。对于一个新的元素,可以快速判断其属于哪个子集。注意这里是相对关系,这说明对于一个元素属于哪个子集的判断无法通过一个固定的规则进行。比如,判断元素是否是基数就是一个固定的规则,不需要使用并查集。但如果是把这些元素中连续的放在一起,则就可以使用并查集来操作。 适用范围给定一个集合,要求按照其中元素间的关系把它们分成几个子集,这种场景需要使 2024-02-17 算法 #算法
Git使用指南-进阶 上篇文章介绍了git的基本概念和用法。大致提及了多人合作使用git的一个基本流程。然而多人合作中最常见的问题就是冲突(各种意义上的)。本文只负责解决通过git管理的代码上的冲突:) 涉及到git中两种较为复杂,会产生冲突的操作——merge和rebase 冲突的产生先来回顾一下多人协作中git常见的使用流程 创建项目,提交成master分支 从master创建一个新的分支,开发自己的部分 开发测 2022-04-09 常用工具 > git #git #最佳实践
数据密集型应用系统设计-1-可靠、可扩展与可维护的应用系统 认识数据系统数据密集型应用(data-intensive)指计算压力小而数据量大,数据复杂度高,数据快速多变的应用。比如网站,游戏等网络服务。这类应用的瓶颈不是CPU的处理能力,而是数据的读写。 计算密集型应用(compute-intensive)指计算压力大的应用。比如机器学习模型训练等,瓶颈常常在CPU,GPU算力上。 数据密集型应用常常由标准模块构成,常见模块如下: 数据库:用来长期存储数 2022-03-26 读书笔记 > 数据密集型应用系统设计 #系统设计
快学Scala-21-隐式转换和隐式参数 隐式转换所谓隐式转换函数,指的是那种以implicit关键字声明的带有单个参数的函数。这样的函数被自动应用,将值从一种类型转换为另一种。 1234implicit def int2Fraction(n:Int) = Fraction(n,1)//将调用int2Fraction(3)自动转换类型val result = 3*Fraction(4,5) 利用隐式转换丰富现有的类库功能在Scala中, 2022-03-10 读书笔记 > 快学Scala #scala
快学Scala-20-解析 文法文法指一组用于产出所有遵循某个特定结构的字符串的规则。比如回文字符串可以用规则定义出 字符串的第i个字符和第len-i-1个字符相同(从0开始算)文法通常以一种被称为巴科斯范式(BNF)的表示法编写。 可以通过文法来定义数学表达式,第一步被称为词法分析,在此列中词法分析会收集数字。 更一般的,词法分析会丢掉空白和注释并新城词法单元(标识符,数字或符号)。 组合解析器操作为了使用Scala解 2022-03-10 读书笔记 > 快学Scala #scala