算法 随想录 柠檬水 队列

单调队列

一个支持在队尾插入,队头和队尾删除的队列,整个队列呈单调性 如果要求最大值则维护一个递减的单调队列,最小值则递增 用deque写很方便(前几天用数组模拟队列 代码调不出bug难受死了) 例题 P1886 滑动窗口 思路: 用一个deque,存点的序号(用于判断是否过期)和点的数字。每次新增加一个元素 ......
队列

算法-18-希尔排序

......
算法 18

redis stream做轻量级消息队列的可行性

#### 背景 对于消息数量很少的场景, 尝试使用redis stream来做消息队列. #### 为什么要用redis的stream, redis的其他数据结构可以吗? 参考文章1:https://www.zhihu.com/question/43688764?sort=created 参考文章2 ......
轻量 轻量级 队列 可行性 消息

算法笔记(二)—— 认识N(logN)的排序算法

递归行为的时间复杂度估算 整个递归过程是一棵多叉树,递归过程相当于利用栈做了一次后序遍历。 对于master公式,T(N)表明母问题的规模为N,T(N/b)表明每次子问题的规模,a为调用次数,加号后面表明,除去调用之外,剩余语句的复杂度是多少,算出d。根据上次三个判断公式进行算法时间复杂度计算。 归 ......
算法 笔记 logN

算法-15-归并排序

......
算法 15

C/C++ 数据结构五大核心算法之动态规划算法-给你一根长度为 n 的金条,请把金条剪成 m 段 (m 和 n 都是整数,n>1 并且 m>1)每断金条的长度记为 k[0],k[1],…,k[m].请问 k[0] k[1]…*k[m]可能的最大乘积是多少?

动态规划也是一种分治思想,但与分治算法不同的是,分治算法是把原问题分解为若干子问题,自顶向下,求解各子问题,合并子问题的解从而得到原问题的解。动态规划也是自顶向下把原问题分解为若干子问题,不同的是,然后自底向上,先求解最小的子问题,把结果存储在表格中,在求解大的子问题时,直接从表格中查询小的子问题的 ......
金条 算法 长度 乘积 数据结构

kratos项目中使用kafka实现延迟队列

项目地址 https://gitee.com/huoyingwhw/kratos_kafka B站视频地址 B站视频地址——kratos项目中使用kafka实现延迟队列 ......
队列 项目 kratos kafka

消息队列详解

文章目录1、什么是消息队列2、消息队列特点3、消息队列的的传输模式4、常用的消息队列1、什么是消息队列消息队列一般简称为 MQ (Messges Queue),是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成,是在消息的传输过程中保存消息的容器。消息队列本 ......
队列 消息

代码随想录算法训练营第四十五天| 739. 每日温度 496.下一个更大元素 I

739. 每日温度 单调栈的思路: 如果要找左边第一个比当前数字大的节点 这个栈里面存放的是index,大——》小 如果一个新节点,比栈顶大,那么就是栈顶的第一个大于它的节点 代码: 1 // 单调栈:一维数组,寻找 元素右边,或者左边自己大或者小的元素的位置 2 3 // 要求:找到比当前节点值高 ......
随想录 训练营 随想 算法 元素

算法-13-堆排序

......
算法 13

消息队列二十年

2020 年我有幸加入腾讯 tdmq 初创团队,当时 tdmq 还正在上云公测阶段,我第一次从一个使用工具的人转变成了开发工具的人, 这个过程使我沉淀了很多消息队列知识与设计艺术。 后来在业务中台的实践中,也频繁地使用到了 MQ,比如最常见的消息推送,异常信息的重试等等, 过程中也对消息队列有了更加 ......
队列 消息

算法-12-快速排序-快排的最好最坏情况

class Solution { public int[] sortArray(int[] nums) { quickSort(nums, 0, nums.length - 1); return nums; } public void quickSort(int[] nums, int l, int ......
算法 情况 最好 12

算法-11-快速排序

......
算法 11

LeetCode从算法到算命——每日一题(0802)

LeetCode从算法到算命—每日一题(0802) # 822. 翻转卡片游戏 ## 题目信息 在桌子上有 n 张卡片,每张卡片的正面和背面都写着一个正数(正面与背面上的数有可能不一样)。 我们可以先翻转任意张卡片,然后选择其中一张卡片。 如果选中的那张卡片背面的数字 x 与任意一张卡片的正面的数字 ......
算法 LeetCode 0802

算法-09-插入排序

......
算法 09

[代码随想录]Day07-字符串 part01

## 题目:[344. 反转字符串](https://leetcode.cn/problems/reverse-string/) ### 思路: 每次把最前面和最后面的交换位置即可 `strings`库里没有反转的方法 ——这个反转是之后几个题的一个基础 ### 代码: 双指针调换位置 ```go ......
随想录 字符串 随想 字符 代码

RabbitMQ(五)延时队列及其在分布式事务的使用场景

### RabbitMQ(五)延时队列 ​ 延时队列的使用场景: - 未支付订单,超过一段时间后,系统自动取消订单并释放占有物品 - 锁定库存一段时间后,检查订单不存在或者被取消,则解锁库存 #### 1 定时任务存在的问题 ​ 如果使用Spring Schedule定时轮询数据库,则 - 消耗系统 ......
队列 分布式 RabbitMQ 场景 事务

m基于大规模MIMO技术的5G网络上下行功率优化算法matlab仿真

1.算法仿真效果 matlab2022a仿真结果如下: 2.算法涉及理论知识概要 基于大规模MIMO技术的5G网络上下行功率优化算法"是针对5G网络中的大规模多输入多输出(MIMO)系统进行功率优化的一种算法。该算法旨在通过优化上行和下行通信的功率分配,以实现网络资源的高效利用、提高系统容量和降低干 ......
算法 功率 大规模 上下 matlab

代码随想录算法训练营第四十四天| 647. 回文子串 516.最长回文子序列

647. 回文子串 要求: 找出回文子串的个数 思路: 设置起始节点 如果头尾相等,且是相差为1,指定回文 如果相差很多,那么就看它的字串 代码: 1 // 要求:找出 正反相等,且连续字符,开始结束位置不同,也认为是一个 2 // dp[n][n] 起始-中止位置 3 // 4 // 如果两边相等 ......
回文 随想录 训练营 序列 随想

算法-08-选择排序

选择排序法是一种不稳定的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素, 存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。 # 简单 li_new = [] def select ......
算法 08

采用PCA算法&KMeans算法来实现用户对物品类别的喜好细分(菜篮子分析)(附带数据集下载)

实现该项目的流程如下 """ 项目:用户对物品类别的喜好细分(菜篮子分析) 主算法:PCA降维算法 KMeans算法 总思路 1、导包 2、获取数据 3、数据处理 5、特征工程(使用PCA降维) 6、使用KMeans算法进行模型训练 7、模型评估 """ First of all!!导包 # 1、导 ......
算法 菜篮 菜篮子 类别 物品

算法-06-冒泡排序

import random def bubble_sort(li): for i in range(len(li) - 1): for j in range(len(li) - i - 1): if li[j] > li[j + 1]: li[j], li[j + 1] = li[j + 1], l ......
算法 06

算法笔记——ST表

# ST表 ST表是一种简单的数据结构,主要用于解决RMQ问题(区间最大/最小值问题)主要应用倍增的思想,可以实现O(nlogn)预处理,O(1)查询 ## 1.预处理ST表 倍增法递推:用两个等长的小区间拼凑一个大区间 f[i][j]表示以第i个数为起点,长度为2^j的区间里的最大值/最小值 f[ ......
算法 笔记

算法-05-排序

......
算法 05

算法-04 -二分查找

案例: def binary_search(li, val): left = 0 right = len(li) - 1 while left <= right: # 候选取有值 mid = (left + right) // 2 # mid 位置 if li[mid] == val: # 如果mi ......
算法 04

[算法题python]822.翻转卡片游戏

在桌子上有 n 张卡片,每张卡片的正面和背面都写着一个正数(正面与背面上的数有可能不一样)。 我们可以先翻转任意张卡片,然后选择其中一张卡片。 如果选中的那张卡片背面的数字 x 与任意一张卡片的正面的数字都不同,那么这个数字是我们想要的数字。 哪个数是这些想要的数字中最小的数(找到这些数中的最小值) ......
算法 卡片 python 822

代码随想录算法训练营第四十三天| 583. 两个字符串的删除操作 72. 编辑距离

583. 两个字符串的删除操作 要求: 删除最少的步数,来让这两个字符串相等 思路: 求末尾的最长公共子序列的长度,然后减去他们的长度 代码: 1 // 要求:两个字符串,删除任意一个字符后,让这两个字符相等 2 // dp[n][m] 以n-1结尾的字符串变成节点为m-1为子序列的最大个数 3 / ......
随想录 训练营 字符串 随想 算法

[算法题python]14. 最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入:strs = ["flower","flow","flight"] 输出:"fl" 示例 2: 输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在 ......
前缀 算法 python 14

C/C++ 数据结构五大核心算法之分治法

分治法——见名思义,即分而治之,从而得到我们想要的最终结果。分治法的思想是将一个规模为 N 的问题分解为 k 个较小的子问题,这些子问题遵循的处理方式就是互相独立且与原问题相同。 两部分组成: 分(divide):递归解决较小的问题 治(conquer):然后从子问题的解构建原问题的解 三个步骤: ......
数据结构 算法 核心 结构 数据

scrapy源码分析:redis分布式爬虫队列中,priority值越大,优先级越高

# scrapy源码分析:redis分布式爬虫队列中,priority值越大,优先级越高 # 一、背景 scrapy爬虫项目中,遇到scrapy的priority属性,搞不懂priority的值越大优先级越高,还是值越小优先级越高 ```python # 通过priority修改优先级 return ......
爬虫 优先级 队列 分布式 源码