snowflakeidworker算法 雪花
随机算法学习指南
整数数组随机生成算法 [python] #python import random array = [random.randint(-100, 100) for _ in range(1000)] for i in array: print(i,end=" ") 随机抽取一组不重复的数 Fisher ......
10.26算法
字母异位词分组给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]输出: [["bat"], ......
数据结构与算法 | 深搜(DFS)与广搜(BFS)
在查找二叉树某个节点时,如果把二叉树所有节点理理解为解空间,待找到那个节点理解为满足特定条件的解,对此解答可以抽象描述为: _在解空间中搜索满足特定条件的解_,这其实就是搜索算法(Search)的一种描述。当然也有其他描述,比如是“指一类用于在数据集合中查找特定项或解决问题的算法”,又或者是“指通过... ......
加密算法
1.加密算法的类图结构 2.源代码 2.1代码运行截图 2.2代码的目录结构 2.3具体代码 MethodFactory.java package jiami; public interface MethodFactory { public Method produceMethod(); } DES ......
算法训练day41 509.70.746
算法训练day41 509.70.746 动态规划理论基础 什么是动态规划 每一状态由上一状态推导而来 解题步骤 确定dp数组(dp table)以及下标的含义 确定递推公式 dp数组如何初始化 确定遍历顺序 举例推导dp数组 debug: 打印dp数组,和预期比较 509. 斐波那契数 题目 50 ......
10.25算法
矩阵置零给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1: 输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2: 输入:matrix = ......
使用BBP算法计算π,Python实现
BBP算法(Bailey-Borwein-Plouffe算法)是一种用于计算π的算法,它可以直接计算出π的十六进制表示的任意一位。BBP算法由Simon Plouffe于1995年提出,基于David Bailey和Peter Borwein在1995年的工作。 BBP算法的基本思想是使用级数展开, ......
KMP算法【字符串搜索算法】
KMP算法 1. 算法核心 利用匹配失败后的信息 尽量减少模式串(B)与主串(A)的匹配次数 以达到快速匹配的目的 通过一个 next 数组,保存模式串(B)中 前后最长公共子序列的长度,每次回溯时,通过 next 数组找到,前面匹配过的位置,省去了大量的计算时间 2. 如何减少匹配次数 2.1. ......
文心一言 VS 讯飞星火 VS chatgpt (120)-- 算法导论10.3 5题
五、用go语言,设 L 是一个长度为 n 的双向链表,存储于长度为 m 的数组key、prev 和next 中。假设这些数组由维护双链自由表 F的两个过程 ALLOCATE-OBJECT 和 FREE-OBJECT 进行管理。又假设 m 个元素中,恰有 n 个元素在链表 L 上,m-n 个在自由表上 ......
【学习笔记】Miller-Rabin 算法
费马小定理 当 \(p\) 为质数时,若 \(\gcd(a,p)=1\),则 \(a^{p-1}\equiv 1\pmod p\)。 但逆命题是错的,例如 \(p=561\) 这类卡迈克尔数,满足任何 \(\gcd(a,p)=1\) 都有 \(a^{p-1}\equiv 1\pmod p\)。所以用 ......
区块链与安全问题-精讲对等网络、共识算法、密码学算法
本博文转载自 天山老妖 的博客:http://blog.51cto.com/9291927 一、区块链密码安全技术简介 区块链和分布式账本中大量使用了密码学和安全技术的最新成果,特别是身份认证和隐私保护相关技术。区块链使用了包括Hash 算法与摘要、加密算法、数字签名和证书、PKI体系、Merkle ......
安防监控视频汇聚平台EasyCVR增加AI算法列表接口的实现方法
安防监控视频汇聚平台EasyCVR基于云边端一体化架构,具有强大的数据接入、处理及分发能力,可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、云台控制、语音对讲、智能分析等功能。平台既具备传统安防监控的能力,也支持提供AI算力算法接入的能力。 今天我们来介绍下在EasyCVR ......
浅谈一些并行排序算法
对于普通的基于比较排序我们拥有一个复杂度下界 \(O(n\log n)\),然而如果我们允许并行计算的话,将得到一些复杂度更优秀的计算方法。 听到并行这个词许多人就会认为你有几个线程复杂度就除以几,所以线程堆得越多越好。但许多的算法问题都必须要满足你必须要算完 A 才能去计算 B,比如对于普通的前缀 ......
贪心算法
顾名思义,贪心,即永远选择当下情况下最佳的结果,也就是所谓的局部最优解。该算法寄希望于局部最优解的堆积可以形成总体上的最优算法。 注意:可以使用反证法来判断贪心算法是否可以计算出最优路径。 注:大部分有限选择的情况都可以通过有限状态机解决。 ......
10.24算法
三数之和给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答 ......
【基础算法】- 贪心
贪心 定义 贪心算法适用于最优子结构问题。意思是问题在分解成子问题来解决时,子问题的最优解能递推到最终问题的最优解。常见的符合这种性质的问题如: 「我们将 XXX 按照某某顺序排序,然后按某种顺序(例如从小到大)选择。」 「我们每次都取 XXX 中最大/小的东西,并更新 XXX。」 但比如在大部分只 ......
子序列相关算法
1、最长公共子序列 最长公共子序列(Longest Common Subsequence,LCS)是动态规划中的经典问题,顾名思义,即求两个序列最长的公共子序列(可以不连续)。 1 #include <iostream> 2 #include<string> 3 using namespace st ......
md5算法实现
前言 md5算法是我们经常会用到的一个hash函数, 虽然已经被证明是不安全的了, 但其应用依然十分广泛. 哈希函数具有如下特点: 将任意长度的字符串映射为固定长度 源数据微小的改动会导致结果差异巨大 不可逆 暴力破解困难 你有没有好奇过, 哈希函数是如何做到这些的呢? 本文就拿md5举例, 看一看 ......
diff算法
什么是Diff算法?Diff算法是Vue.js的一个核心特性,它是一种用于比较虚拟DOM树的差异,并最小化DOM操作的数量。当Vue.js检测到数据更改时,它会生成一个新的虚拟DOM树,并将其与旧虚拟DOM树进行比较。Diff算法会查找差异,并仅对需要更改的部分进行DOM操作。这种算法可以帮助我们在 ......
算法笔记(6)数列分块
原发表于我的博客 前言 分块不能说是一种数据结构,它是一种思想,无论是数列分块,块状链表,还是数论分块,莫队算法,都应用了分块的思想。 本文主要介绍狭义上的分块,即数列分块。 数列分块的引入 数列分块可以说是暴力,一种优美的暴力,它的基本思路是,把数列分成若干块(一般取\(\sqrt n\)),分块 ......
算法笔记(5)贪心算法
原发表于我的博客 贪心算法 贪心与其说是一种算法,不如说一种思想。 贪心思想,顾名思义,就是总是做出当前最好的选择,这种方式可能在全局上不是最好的结果,但是在一些题目中就可以直接用。 最简单的例子就是“货比三家”,在生活中,我们买东西时都会挑性价比最优的,这就是一种贪心。 贪心算法在OI中经常与其他 ......
算法笔记(4)莫队算法入门
原发表于我的博客 前言 本来想学完回滚莫队、树上莫队、二离莫队之后一起写一个博客,但是一直学不会/kk,只好把已会的普通莫队和带修莫队写了(以后会补上的) 普通莫队 莫队——优雅的暴力 莫队算法的引入 例题: 给定一个数列和若干询问,每次询问询问一段区间内不同种类数字的个数。 暴力做法 每次询问暴力 ......
算法笔记(3)模拟退火
原发表于个人博客= 模拟退火的引入 假如我们有一个函数,要求它的极大值,怎么求呢? 如果这个函数满足单调性,可以用二分的方法。 如果这是一个单谷(或单峰)函数,可以用三分法。 那要是多峰函数怎么半呢? 这时就可以用随机化算法。 一种朴素的方法是:每次在当前找到的最优方案\(x\)附近寻找一个新方案。 ......
算法笔记(2)FHQtreap
原发布于我的个人博客 前言 FHQtreap绝对是平衡树里最好写,最实用的,他几乎能做所有splay或其它平衡树能做的事,还能可持久化! 这篇文章将会介绍FHQtreap的基本操作和维护区间的操作,并附上例题。 基本操作 FHQtreap的基本操作只有两个,分裂和合并。 有些读者可能会问,分裂和合并 ......
K-medoids聚类算法
发展: 们每次选簇的平均值作为新的中心,迭代直到簇中对象分布不再变化。因此一个具有很大极端值的对象会扭曲数据分布,造成算法对极端值敏感 在聚类分析中,异常值通常会引起问题,因为它们可能会被分配到一个独立的聚类,从而干扰正常的聚类结果。这可能导致聚类算法产生不合理或不稳定的结果 定义: K-Medoi ......
算法笔记(1)线段树
原发表于个人博客。 前言 线段树,是数据结构皇冠上的明珠(我编的)。 它用途广泛,被一代代的oier应用,改进,优化。 本文介绍了线段树的基础知识和各种拓展(包括权值线段树,可持久化线段树),各种优化方式(包括zkw线段树,动态开点,离散化),希望能帮到更多的oier。 在学习线段树前,默认你应该学 ......
算法-共识算法
一、Paxos 基础的Paxos算法包括如下三种:Basic Paxos、Multi Paxos、Fast Paxos Paxos将系统中的角色分为提议者 (Proposer),决策者 (Acceptor),和最终决策学习者 (Learner): 【Proposer】:提出提案(Proposal)。 ......
manacher算法
manacher算法 斯♥哈♥学长的博客https://www.cnblogs.com/luckyblock/p/17044694.html#5140558 为什么老师叫他马拉车算法/yiw 简介 我们都知道,求最长回文子串可以枚举每一个开始的点,然后直接一个一个比较就完事,但这样的复杂度是接近 \ ......
C++U4-贪心算法1
本节学习目标:贪心算法的概念以及对应练习题 贪心算法概念 贪心算法的特点 利用贪心算法的两个性质 练习1:最优装载问题 【本题算法分析】 优先把重量小的物品放进去,在容量固定的情况下,装的物品量最多。因此采用重量最轻者先装的贪心选择策略,可从局部最优达到全局最优。 参考代码 #include <io ......