错题 算法

分布式一致性算法Raft

raft算法之所以容易理解,其一是他将一致性问题划分成几个子问题,这几个子问题都是独立、可理解和解释的。从传统的思维来讲,对于一个复杂的系统或者工程,都是大化小,分解实现,然后去尝试融合解决整体逻辑。 一、Raft详解 Raft算法是分布式系统开发首选的共识算法。比如现在流行Etcd、Consul、 ......
一致性 分布式 算法 Raft

算法分析与设计大课程报告

问题描述 问题背景: 输入法自动更正:当我们输入了一个不正确的词时,输入法就可能自动给我们更正。例如下面的例子: 图 1 提出问题:为什么输入法能够选到正确的那个词呢? 我们的猜想是,可能输入法会找“长得像”的词作为他推荐给用户的,也就是更正的词。那么如何让计算机知道什么叫长得像呢?具体来讲,如何衡 ......
算法 课程 报告

[算法分析与设计] 3. 并查集分析与反阿克曼函数

Union-Find 问题:给定 \(n\) 个元素,最初每个元素在一个集合中,有两种操作,union 表示合并两个集合,find 表示查询某个特定元素所在的集合。 并查集是一种数据结构。其为每个集合寻找一个代表元,代表元可以是任意的,也可以随操作变化,但需要满足任何时刻一个集合的代表元是确定且唯一 ......
算法 函数

java和c#里的TOTP统一算法

基础说明 本文根据 RFC4226 和 RFC6238 文档,详细的介绍 HOTP 和 TOTP 算法的原理和实现。 两步验证已经被广泛应用于各种互联网应用当中,用来提供安全性。对于如何使用两步验证,大家并不陌生,无非是开启两步验证,然后出现一个二维码,使用支持两步验证的移动应用比如 Google ......
算法 java TOTP

树叶识别系统python+Django网页界面+TensorFlow+算法模型+数据集+图像识别分类

一、介绍 树叶识别系统。使用Python作为主要编程语言开发,通过收集常见的6中树叶('广玉兰', '杜鹃', '梧桐', '樟叶', '芭蕉', '银杏')图片作为数据集,然后使用TensorFlow搭建ResNet50算法网络模型,通过对数据集进行处理后进行模型迭代训练,得到一个识别精度较高的H ......
算法 树叶 TensorFlow 模型 图像

[算法学习笔记] ST表

学习时间:2023/10/15 CSP-S 2023 倒计时 5 days 我竟然才会ST表 简述 ST表主要用于解决 静态RMQ问题。实际上,凡是具备 可重复贡献和结合律的问题,都可以用 ST表 来解决。 ST表 的优化方式和前缀和差分类似,采取预处理,每次可以做到 \(O(1)\) 时间复杂度的 ......
算法 笔记

算法修养--广度优先搜索BFS

广度优先算法(BFS) 广度优先算法(Breadth-First Search)是在图和树领域的搜索方法,其核心思想是从一个起始点开始,访问其所有的临近节点,然后再按照相同的方式访问这些临近节点的节点,这种访问方式类似涟漪泛起,一层一层的扩散。 广度优先算法解决的问题: 从A点出发,有没有一条路径可 ......
广度 算法 修养 BFS

【高级机器学习算法】7.决策树

决策树模型 决策树定义 决策树是一种基本的分类与回归方法,是一种树形结构,其中每个非叶子节点表示一个特征属性上的测试, 每个分支代表这个特征属性在某个值域上的输出,每个叶子节点存放一个类别。 决策树学习算法的任务是在所有可能的决策树中选择一个表现良好的决策树,即在训练集上表现良好且能很好地泛化到新数 ......
算法 机器

文心一言 VS 讯飞星火 VS chatgpt (113)-- 算法导论10.2 5题

五、用go语言,使用单向循环链表实现字典操作 INSERT、DELETE 和 SEARCH,并给出所写过程的运行时间。 文心一言: 在Go语言中,我们首先需要定义一个Node结构体来表示单向循环链表的节点,然后再定义一个LinkedList结构体来表示单向循环链表。接下来,我们可以实现INSERT、 ......
文心 导论 算法 chatgpt VS

旋转调度算法

......
算法

磁盘调度算法

......
磁盘 算法

车辆车型识别系统python+TensorFlow+Django网页界面+算法模型

一、介绍 车辆车型识别系统。本系统使用Python作为主要开发编程语言,通过TensorFlow搭建算法模型网络对收集到的多种车辆车型图片数据集进行训练,最后得到一个识别精度较高的模型文件。并基于该模型搭建Django框架的WEB网页端可视化操作界面。实现用户上传一张车辆车型图片识别其名称。 二、系 ......
算法 TensorFlow 车型 模型 界面

搜索与图论2.2-Floyd算法

一、简述 \(Floyd\) 算法是一种可以快速求解图上所有顶点之间最短路径的算法。 \(Bellman-Ford\) 和 \(Dijkstra\) 算法求解的都是从一个起始点开始的最短路。如果想要求解图中所有顶点之间的最短路,就需要枚举每个点做为起点,这样十分低效。\(Floyd\) 算法(也称 ......
算法 Floyd 2.2

排序算法

排序算法 1、冒泡排序 ​ 冒泡排序是一种非常直接,但是性能比较低的排序方法,其时间复杂度为$\mathcal{O}{n^2}$,它通过两两比较数组中的元素,若第一个元素大于第二个元素,则将两个元素交换位置,逐步将元素中的最大值归位。其排序过程如下图所示: C++代码如下: template<typ ......
算法

【高级机器学习算法】6.机器学习应用建议

模型评估 模型评估是机器学习中非常重要的一部分,它可以帮助我们评估模型的好坏,从而选择最优的模型。 评估方式 在机器学习中,我们通常会将数据集划分为训练集和测试集,训练集用于训练模型,测试集用于评估模型的好坏。 评估指标 训练误差:模型在训练集上的误差,用于衡量模型在训练集上的拟合程度,训练误差越小 ......
机器 算法 建议

Snowflake算法生成分布式ID实现Go、C++

Snowflake 算法是一种用于生成全局唯一 ID 的分布式算法。它在分布式系统中被广泛应用,用于解决多节点同时生成 ID 的冲突问题。 Snowflake 算法的核心思想是将一个64位的长整数(Long)分解成多个部分,每个部分代表不同的信息,例如时间戳、节点ID和序列号。通过这种方式,Snow ......
分布式 算法 Snowflake

22_STL之算法

STL之算法 函数对象 重载函数调用操作符的类,其对象常称为函数对象(function object) ,即它们是行为类似函数的对象,也叫仿函数(functor),其实就是重载"()"操作符,使得类对象可以像函数那样调用。 注意: ​ 1.函数对象(仿函数)是一个类,不是一个函数。 ​ 2.函数对象 ......
算法 STL 22

算法第2章实践报告1

7-1 Cable master (切割绳子) 有N条绳子,它们的长度分别为x。如果从它们中切割出K条长度相同的绳子,这K条绳子每条最长能有多长? 输入格式: 第一行两个整数n和k(1<=n<=10000; 1<=k<=10000)。 接下来n行,描述了每条绳子的长度x,x也是整数。 输出格式: 切 ......
算法 报告

《算法学习专栏》—— DP问题之状态机模型

2023年10月13日 更新于2023年10月13日 一、前言 本栏,为状态机模型,题目主要来源日常,目前主要来源于Acwing的提高课。希望以后做到状态机的题目,也能加进来,不断完善。使用的分析方法均为闫式DP分析法。字臭。。。希望能用手写板慢慢写的好看。 二、状态机模型 2.1 对于状态机的考虑 ......
算法 模型 状态 专栏 问题

代码随想录算法训练营-动态规划-3-(0-1背包问题)|416. 分割等和子集、1049. 最后一块石头的重量 II

416. 分割等和子集 01背包的递推公式为:dp[j] = max(dp[j], dp[j - weight[i]] + value[i]); 如果dp[j] == j 说明,集合中的子集总和正好可以凑成总和j,理解这一点很重要。 1 class Solution: 2 def canPartit ......
随想录 子集 训练营 随想 算法

RaftPaper:寻一个可被理解的共识算法

周末躺不平,摆不烂,卷不动,随便读一篇paper吧 原文:In Search of an Understandable Consensus Algorithm 作者:Diego Ongaro / John Ousterhout —— Stanford University 摘要 Raft是一个用于管 ......
共识 算法 RaftPaper

10.15算法

最小栈设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元 ......
算法 10.15 10 15

一个vuepress配置问题,引发的js递归算法思考

前言 这两天在尝试用语雀+ vuepress + github 搭建个人博客。 小破站地址 :王天的 web 进阶之路 语雀作为编辑器,发布文档推送 github,再自动打包部署,大概流程如下。 问题 我使用的elog插件批量导出语雀文档。elog采用的配置是所有文章平铺导出,没有按照语雀知识库目录 ......
算法 vuepress 问题

一.排序算法---并归排序

一.并归排序(自定义实现) merge 函数:这个函数用于将两个已排序的子数组合并为一个更大的已排序数组。它包括创建临时数组 L 和 R 来存储左半部分和右半部分的元素,然后比较这些元素并将它们按升序合并到原始数组 arr 中。 mergeSort 函数:这个函数是归并排序的主要函数。它采用递归的方 ......
算法

【算法题】多数元素

🔗题目链接 ✈题目描述: 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 ⌊ n/2 ⌋表示n/2结果向下取整。 🚆数据范围: n == nums.length 1 ......
算法 元素

【算法题】轮转数组

🔗题目链接 🎇题目描述: 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 🎇数据范围: 1 <= nums.length <= \(10^5\) \(-2^{31}\) <= nums[i] <= \(2^{31}\) - 1 0 <= k <= \(10 ......
数组 算法

【算法题】跳跃游戏

题目链接 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。 1 <= nums.length <= \(10^4\) 0 <= nums[i] ......
算法

【算法】归并排序

归并排序的基本思想是什么? 归并排序采用分治法(Divide and Conquer),将待排序的数组分成若干个子数组再对子数组进行排序,最后将已排序的子数组合并成一个大的有序数组。 下面是归并排序的基本步骤: 分解-Divider:将待排序的数组按照中间位置分成两个子数组,再将每个子数组按照相同的 ......
算法

【算法题】257

257. 二叉树的所有路径 给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 树中节点的数目在范围 [1, 100] 内 -100 <= Node.val <= 100 这是一道常规 DFS 题, /** * Definitio ......
算法 257

【算法题】跳跃游戏Ⅱ

题目链接 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处: 0 <= j <= nums[i] i + j < n 返 ......
算法