算法 随想录 柠檬水 队列

[C++/PTA] 队列操作

## 题目要求 请实现一个MyQueue类,实现出队,入队,求队列长度. 实现入队函数 void push(int x); 实现出队函数 int pop(); 实现求队列长度函数 int size(); 输入格式: 每个输入包含1个测试用例。每个测试用例第一行给出一个正整数 n (n using n ......
队列 PTA

go语言编写算法

1、冒泡排序 // 冒泡排序 a := []uint8{9, 20, 10, 23, 7, 22, 88, 102} for i := 0; i < len(a); i++ { for k := i + 1; k < (len(a) - i); k++ { if a[i] > a[k] { a[i] ......
算法 语言

代码随想录算法训练营第七天| 344.反转字符串 、 541. 反转字符串II、 剑指Offer 05.替换空格 、 151.翻转字符串里的单词 、 剑指Offer58-II.左旋转字符串

344.反转字符串 代码: 1 void reverseString(vector<char>& s) { 2 3 int i = 0; 4 int j = s.size() - 1; 5 while (i < j) 6 { 7 char mid = s[i]; 8 s[i] = s[j]; 9 s ......
字符串 字符 随想录 左旋 Offer

rocketMQ消息队列简介及其实例

一、RocketMQ 核心的四大组件: Producer:就是消息生产者,可以集群部署。它会先和 NameServer 集群中的随机一台建立长连接,得知当前要发送的 Topic 存在哪台 Broker Master上,然后再与其建立长连接,支持多种负载平衡模式发送消息。 Consumer:消息消费者 ......
队列 实例 rocketMQ 消息 简介

单调队列优化DP

# 单调队列优化DP 单调栈和单调队列都是借助单调性,及时排除不可能的决策,保持候选集合的高度有效性和秩序性。单调队列尤其适合优化决策取值范围的上、下界均单调变化,每个决策在候选集合中插入或删除至多一侧的问题。 利用单调队列,我们可以舍去许多无用的状态,来更快的找出最优解。 ### [最大子序和]( ......
队列

雪花算法-分布式唯一ID

用途(用于解决什么问题) 实现(原理) 参考文献 1.SnowFlake 雪花算法详解与实现 2.实际应用中的问题及解决方案 ......
分布式 算法 雪花

Java并发容器 & 并发队列

## 并发容器概览 ConcurrentHashMap : 线程安全的HashMap CopyOnWriteArrayList: 线程安全的List BlockingQueue:这是一个接口,表示阻塞队列,非常适合用于作为数据共享的通道 ConcurrentLinkedQueue : 高效的非阻塞并 ......
队列 容器 Java amp

策略模式:整体替换算法

策略模式是一种行为设计模式,它允许在运行时选择算法的行为。在策略模式中,我们定义了多个算法,并将每个算法封装在一个独立的类中(__策略类__),以便在运行时根据需要进行切换。这使得算法与调用其算法的客户端代码分离,从而实现了更高的灵活性和可维护性。 主要实现方式:1 策略接口 -> n * 具体策略 ......
算法 整体 策略 模式

python对接事务性MSMQ队列

研究了很久,逐步了解到原理后,发现python发送消息到事务性msmq肯定可行。 现在能搜到的资源没有任何一篇文章说明了这个,包括gpt都一样。废话不多说,直接上代码 import win32com.client # 关键代码 必须使用 gencache 导入 "MSMQ.MSMQQueueInfo ......
事务性 队列 事务 python MSMQ

kmp 算法

问题描述 kmp算法解决的是字符串匹配问题,即:字符串P是否是字符串S的子串?如果是,它出现在s的哪些位置?这里我们称 S 为主串,P 为模式串。 思路 首先是暴力匹配算法(Brute-Force算法),代码如下: void BruteForce(string s, string p) { int ......
算法 kmp

LRU 算法与 LFU 算法

算法介绍 LRU LRU 全称是 Least Recently Used,即最近最久未使用算法。 LRU 根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高,它是页面置换算法的一种,也常用于缓存设计。 LFU LFU 全称是 Least Freque ......
算法 LRU LFU

快速选择算法

问题描述 给定一个长度为$n$的数组,如何在$O(n)$的时间复杂度内找到第$k$大的数。 思路 朴素的想法是先排序,然后直接找到第$k$个元素,时间复杂度为$O(n\log n)$。 我们可以利用快速排序的思想来解决这个问题,考虑快速排序的划分过程,在快速排序的“划分”结束后,数组$A_p \cd ......
算法

字符串哈希算法

问题描述 考虑 1044. 最长重复子串 (Hard),本题思路并不难,可以使用二分答案来解决,假设答案为 mid,那么长度大于 mid 的子串在 s 中只会出现一次,否则至少出现两次。 因此只需要考虑子串在 s 中的出现次数即可,比较直接的想法是使用 key 为 string 的 unordere ......
字符串 算法 字符

代码随想录day07

第三章 哈希表part02 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和 454.四数相加II 思路:采用分为两组,HashMap 存一组,另一组和 HashMap 进行比对。 首先求出 A 和 B 任意两数之和 sumAB,以 sumAB 为 key,sumAB 出现 ......
随想录 随想 代码 day 07

马拉车算法

截图来自董老师https://www.bilibili.com/video/BV173411V7Ai/?spm_id_from=333.999.0.0&vd_source=23dc8e19d485a6ac47f03f6520fb15c2 P3805 【模板】manacher 算法 #include< ......
算法

v831-openwrt-c-多线程、队列篇

前言 这几天都在搞多线程和队列,但是最后发现由于v831的单核,用了多线程和队列还不如不用,并且吐槽一下c的线程和队列库,特别队列库很难用。 线程库 #include <pthread.h> //系统的多线程文件 使用条例: 使用的很简单,网上的说明很清楚,不需要详细说明 指向 感悟 很鸡肋,如果不 ......
队列 线程 openwrt-c openwrt 831

SystemVerilog练习(结构体加队列)

《SystemVerilog验证测试平台编写指南》,刚刚学完队列和结构体,就想练习一下。 1 module TestStruct; 2 typedef struct packed 3 { 4 bit [7:0] addr; 5 bit [7:0] pr; 6 bit [15:0] data; 7 } ......
队列 SystemVerilog 结构

《数据结构与算法》之二叉树(补充树)

一.树结构之二叉树操作 二叉树的查找 二叉搜索树,也称二叉排序树或二叉查找树 二叉搜索树:一棵二叉树,可以为空,如果不为空,应该满足以下性质: 非空左子树的所有结点小于其根结点的键值 非空右子树的所有结点大于其根结点的键值 左右子树都是二叉搜索树 对于二叉树的查找,其实沿用的是分治法的思想,所以我们 ......
数据结构 算法 结构 数据

文心一言 VS 讯飞星火 VS chatgpt (40)-- 算法导论5.4 4题

# 四、一次聚会需要邀请多少人,才能让其中 3 人的生日很可能相同? ## 文心一言: 为了解决这个问题,我们需要先计算出所有可能的生日组合数,然后计算出其中生日相同的组合数。 已知需要邀请的人数为:23人 根据组合数公式,可计算出所有可能的生日组合数: 2.58520167*10^{22} 根据生 ......
文心 导论 算法 chatgpt VS

算法题总结-最长递增子序列

原题 https://www.nowcoder.com/practice/6d9d69e3898f45169a441632b325c7b4?tpId=37&tqId=21247&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2F ......
序列 算法

代码随想录|二叉树总结

涉及到二叉树的构造,无论普通二叉树还是二叉搜索树一定前序,都是先构造中节点。 求普通二叉树的属性,一般是后序,一般要通过递归函数的返回值做计算。 求二叉搜索树的属性,一定是中序了,要不白瞎了有序性了。 ......
随想录 随想 代码

代码随想录|二叉树(最后一章)

530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先 235. 二叉搜索树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树 总结篇 53 ......
随想录 随想 代码

Different Integers (牛客多校) (区间不同数的个数+队列加倍的妙处, 莫队)

题目大意: 给一个序列 ai , 然后 m 次 询问 L,R , 每次回答 a1 al + ar an, 这2个区间的不同数的个数 思路1: 通过队列加倍, 将2个断开的区间,合在一起, 每次询问就是 R --L+n 然后区间不同数的个数, 将每一个数第一次出现位置的权值设置为 1, 其他为 0, ......
妙处 队列 区间 Different 个数

c#排序算法

1.没有一种排序算法是万能的最快算法,因为最快的排序算法取决于数据的性质和排序要求。然而,对于一般情况下的排序问题,以下算法通常被认为是最快的: 快速排序(Quick Sort):这是一种基于分治思想的常见排序算法。其平均时间复杂度为 O(nlogn)。因为其平均情况下时间复杂度相对较快,加上其实现 ......
算法

LRU 算法与 LFU 算法

算法介绍 LRU LRU 全称是 Least Recently Used,即最近最久未使用算法。 LRU 根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高,它是页面置换算法的一种,也常用于缓存设计。 LFU LFU 全称是 Least Freque ......
算法 LRU LFU

kmp算法

问题描述 kmp算法解决的是字符串匹配问题,即:字符串P是否是字符串S的子串?如果是,它出现在s的哪些位置?这里我们称 S 为主串,P 为模式串。 思路 首先是暴力匹配算法(Brute-Force算法),代码如下: void BruteForce(string s, string p) { int ......
算法 kmp

快速选择算法

问题描述 给定一个长度为$n$的数组,如何在$O(n)$的时间复杂度内找到第$k$大的数。 思路 朴素的想法是先排序,然后直接找到第$k$个元素,时间复杂度为$O(n\log n)$。 我们可以利用快速排序的思想来解决这个问题,考虑快速排序的划分过程,在快速排序的“划分”结束后,数组$A_p \cd ......
算法

字符串哈希算法

问题描述 考虑 1044. 最长重复子串 (Hard),本题思路并不难,可以使用二分答案来解决,假设答案为 mid,那么长度大于 mid 的子串在 s 中只会出现一次,否则至少出现两次。 因此只需要考虑子串在 s 中的出现次数即可,比较直接的想法是使用 key 为 string 的 unordere ......
字符串 算法 字符

代码随想录算法训练营第六天| 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和

454.四数相加II 1,难点: 1,多个数组之间,会有重复出现的数组,如果单用multiset也是会出错的 2,如果用mutliset,在使用 distance 找出来 equal_range的值的时候,也是会出现奇怪的错误的 2,正确思路 1,把重复出现的节点,次数 存放到map种,然后进行遍历 ......
之和 随想录 训练营 随想 算法

事件队列(EventLoop)【宏任务,微任务】

一、概念 event:事件 loop:循环,循环的是一个又一个的任务队列 任务队列:是一个先进先出的数据结构,排在前面的事件,优先被主线程读取 任务队列分为:宏队列,微队列,分别存放宏任务和微任务 二、宏任务【多个】、微任务【1个】 微任务一般比宏任务先执行,并且微任务队列只有一个,宏任务队列可能有 ......
任务 队列 EventLoop 事件