算法 随想录 柠檬水 队列

1020. 【软件认证】任务调度算法

题目描述 某分布式任务调度系统有 taskNum 个任务(编号从 1 到 taskNum)需要调度,调度策略: 任务之间可能存在依赖关系,且无循环依赖,如任务1 依赖任务2,那么要等待任务2执行完才能执行任务1; 如果任务之间没有依赖关系,则可以并发执行(假设并发所需资源是充足的)。 现给出任务间的 ......
算法 任务 软件 1020

代码随想录第七天 | 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和

07:04:26 第一题:https://leetcode.cn/problems/4sum-ii/ 早上起来人不清醒,模模糊糊过掉了,晚上再重新复习一下 关键是这串 for a in nums3: for b in nums4: wow_sum = -(a + b) if wow_sum in h ......
之和 随想录 随想 代码 454

最短路2 Bellman-ford算法 (10/31)

struct Edge//存放边 { int a,b,w; }edges[M]; edges[i]={a,b,w}; //结构体经典赋值方式#include<iostream> #include<cstring> #include<algorithm> using namespace std; co ......
Bellman-ford 算法 Bellman ford 10

二分查找算法题1

/** * https://leetcode.cn/problems/sqrtx/description/ * 二分查找 * 将数据分成两部分 * 第一部分为平方小于等于target * 另外的为大于target * left=mid。right=mid-1;使用+1求中 * */ public s ......
算法

算法【ZAB 优先级的民主投票】

一、简介 ZAB(ZooKeeper Atomic Broadcast)算法是ZooKeeper为实现分布式协调而设计的,它是对Raft选主算法的一种改进,在拥有投票选举的维度下增加节点ID以及数据ID(数据的最新值)为参考。 二、说明 2.1、ZAB算法有3种角色: Leader:主节点 Obse ......
优先级 算法 ZAB

算法【Raft 投票】

一、简介 Raft算法属于典型的多数派选主算法,谁获得的票数最多,谁就可以成为主节点。 二、说明 Raft算法选主中集群各个节点的角色有3种: Leader:主节点,同一时刻只有一个Leader节点,负责整个集群的节点间的协调和管理。 Candidate: 候选节点,只有角色为候选者的节点才可以被选 ......
算法 Raft

文心一言 VS 讯飞星火 VS chatgpt (125)-- 算法导论10.6 6题

六、用go语言,任意有根树的左孩子右兄弟表示法中每个结点用到三个指针: leftchild、rightsibling 和parent。对于任何结点,都可以在常数时间到达其父结点,并在与其孩子数呈线性关系的时间内到达所有孩子结点。说明如何在每个结点中只使用两个指针和一个布尔值的情况下,使结点的父结点或 ......
文心 导论 算法 chatgpt VS

代码随想训练营第二十一天(Python)| 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

二叉搜素树,利用中序遍历的升序结果 530.二叉搜索树的最小绝对差 1、递归中序遍历 class Solution: def __init__(self): self.pre = None self.res = float('inf') def getMinimumDifference(self, ......
训练营 祖先 随想 代码 Python

Rabbitmq消息队列:linux服务器上部署Rabbitmq服务

一、服务器安装中间件 此处使用的是CentOS 7系统。 1、安装Erlang运行环境 下载安装包: wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm 安装相关的依赖(不安装依赖而直接安装erla ......
Rabbitmq 队列 消息 服务器 linux

算法【bully 霸道算法】

一、简介 bully算法,也叫霸道算法。遵循谁拳头大谁当老大原则,即集群中节点ID值最大的那个则会被选为主节点。 二、说明 bully算法在选主过程中,会涉及到以下三种消息: bully算法底层选主流程图: 【触发选主时机】 2.1、错误节点恢复。 2.2、检测到master节点发生故障,如上图: ......
算法 bully

Aho-Corasick DoubleArrayTire 算法 ACDAT - 基于双数组字典树的AC自动机

双数组字典树能在O(1)(1是模式串长度)时间内高速完成单串匹配,并且内存消耗可控,然而软肋在于多模式匹配。如果要匹配多个模式串,必须先实现前缀查询,然后频繁截取文本后缀才可多匹配。比如 ushers、shers、hers…这样一份文本要回退扫描多遍,性能较低。既然 AC 自动机的goto表本身就是 ......

从CAP理论到Raft算法

什么是分布式系统 分布式系统是支持分布式处理的软件系统,是由通信网络互联的多处理机体系结构上执行任务的系统。 一个业务拆分为多个子业务,落地成不同的服务,将各个服务部署在不同的容器上。各个服务之间通过某种协议通信交互。 好处是有更好的可靠性,可扩展性,但也带来了一致性问题。所以碰到分布式系统,主要就 ......
算法 理论 Raft CAP

redis + lua 限流 算法 滑动窗口 漏桶 令牌桶

redis + lua 限流 算法 滑动窗口 漏桶 令牌桶 /** * @Author liyichuan * @Date 2023/10/31 9:50 */ @Data public class RateLimiterHandle { /** * 补给率 */ private double re ......
令牌 算法 redis lua

任务队列C++实现-(完美转发)

需求 任务队列中可以依次添加任务; 任务执行函数需要接受外部传输的参数; 主动调用Start开始执行任务; 代码实现 class TaskQueue { private: std::mutex mtx; std::condition_variable cv; std::queue<std::func ......
队列 任务

学习笔记:单调队列

单调队列 引入 如果一个选手比你小还比你强,你就可以退役了。 单调队列是一种主要用于解决滑动窗口类问题的数据结构,即,在长度为 \(n\) 的序列中,求每个长度为 \(m\) 的区间的区间最值。它的时间复杂度是 \(O(n)\),在这个问题中比 \(O(n\log ⁡n)\) 的 ST 表和线段树更 ......
队列 笔记

哪些情况下需要使用消息队列?

应用解耦:当多个应用程序需要共享数据或资源时,消息队列可以作为中介传递消息,减少程序之间的依赖。 异步处理:当一个任务需要很长时间才能完成,那么可以将任务处理过程分为两步:首先将任务放入消息队列中,然后由另一个线程从队列中取出并处理该任务。这种方式允许主程序等待长时间操作的同时处理其他任务。 流量削 ......
队列 消息 情况

堆、队列数据结构的特点和作用介绍

What is Stack、Queue? 栈(Stack)又名堆栈; 队列(Queue); 堆栈的特点: 由于堆栈的栈和蘸碟的蘸同音,可以想象去火锅店吃饭,调味台上有一摞蘸碟,你是不是只能从顶上的蘸碟拿起,这就是堆栈的特点:后进先出。 队列的特点: 队列就是类似排队的数据结构,比如排队打饭,先排队的 ......
数据结构 队列 特点 作用 结构

10.31算法

最长回文子串给你一个字符串 s,找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。 示例 1: 输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2: 输入:s = "cbbd"输出:"bb" class Solutio ......
算法 10.31 10 31

crypto常用算法

欧几里得算法(辗转相除法) def gcd(a, b): if b == 0: return a else: return gcd(b, a % b) 扩展欧几里得算法 def ext_euclid(a, b): if b == 0: return 1, 0, a else: x, y, q = e ......
算法 常用 crypto

R语言非参数方法:使用核方法和K-NN(k近邻算法)分类预测心脏病数据|附代码数据

原文链接: http://tecdat.cn/?p=22181 原文出处:拓端数据部落公众号 最近我们被客户要求撰写关于非参数方法的研究报告,包括一些图形和统计输出。 本文考虑一下基于核方法进行分类预测。注意,在这里,我们不使用标准逻辑回归,它是参数模型。 非参数方法 用于函数估计的非参数方法大致上 ......
方法 数据 近邻 心脏病 算法

学习笔记432—VBM_DARTEL算法对灰质变化的计算

VBM_DARTEL算法对灰质变化的计算 根据一些文献得知,VBM目前比较新的算法是DARTEL算法,这一算法被集成在SPM里,这里记录一下做法。VBM是对T1像进行分割得到灰质等。所以要有结构T1加权像数据。整个流程应该是这样: 1.手动调整前联合(AC) 首先就是需要我们自己手动调整一下结构像, ......
灰质 算法 VBM_DARTEL 笔记 DARTEL

代码随想录训练营第二十天打卡(Python)| 654.最大二叉树 、617.合并二叉树 、700.二叉搜索树中的搜索 、98.验证二叉搜索树

654.最大二叉树 1、使用切片 class Solution: def constructMaximumBinaryTree(self, nums: List[int]) -> Optional[TreeNode]: if len(nums) == 0: return None max_val = ......
随想录 训练营 随想 代码 Python

排序算法——冒泡,插入,选择排序

冒泡排序 冒泡排序是一种简单的排序算法 实际上是每一次排序都会将最大的元素放到最后 比较相邻的元素,如果第一个比第二个大,就交换他们两个 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数 针对所有的元素重复以上的步骤 点击查看代码 int len = ar ......
算法

LeetCode225.用队列实现栈

题目描述 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 实现 MyStack 类: void push(int x) 将元素 x 压入栈顶。 int pop() 移除并返回栈顶元素。 int top() 返回栈顶元素。 ......
队列 LeetCode 225

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

五、用go语言,给定一个n结点的二叉树,写出一个 O(n)时间的非递归过程,将该树每个结点的关键字输出。要求除该树本身的存储空间外只能使用固定量的额外存储空间,且在过程中不得修改该树,即使是暂时的修改也不允许。 文心一言: 您可以使用一个栈来存储节点,以便在遍历二叉树时进行回溯。由于您要求不能修改树 ......
文心 导论 算法 chatgpt VS

队列实现通信

队列实现通信import queue 创建一个队列q=queue.Queue(2) 括号内可以传数字,代表最大可以同时存放的数据量,生成队列对象q.put(111) q.put(2) 往队列里面存数据当队列数据放满了之后,程序会阻塞,直到数据腾出位置v1=q.get()v2=q.get() 取队列里 ......
队列

算法总和题目

......
总和 算法 题目

算法总和

......
总和 算法

LeetCode232.用栈实现队列

题目描述 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾 int pop() 从队列的开头移除并返回元素 int peek() 返回队列开头的元 ......
队列 LeetCode 232

快速排序--排序算法

快速排序 介绍 快速排序是分治思想的一种体现,通过递归不断将原数列划分为一大一小两部分, 从而实现对数列的排序。 算法时间复杂度为O(nlogn)。特点是数据越混乱,效率越高;数据越有序,效率越低。 值得注意的是快速排序是不稳定的,即相同大小的数据在排序前后的相对位置可能会发生变动。 代码实现 vo ......
算法