算法 随想录 柠檬水 队列

SnowFlake算法

package util; public class IdUtils { private static IdWorkerUtils idWorkerUtils=new IdWorkerUtils(1,1,1); public static Long nextId(){ return idWorker ......
算法 SnowFlake

MQ消息队列篇:三大MQ产品的必备面试种子题

MQ(Message Queue)作为一种用于实现异步通信的技术,具有重要的作用和应用场景。在面试过程中,MQ相关的问题经常被问到,因此了解MQ的用途和设计原则是必不可少的。本文总结了MQ的常见面试题,包括MQ的作用、产品选型、消息不丢失的保证、消息消费的幂等性、消息顺序的保证、消息的高效读写、分布... ......
队列 种子 消息 三大 产品

排序算法---快速排序

#### 什么是快速排序? 快速排序(Quick Sort)是一种高效的排序算法,它使用分治法来将一个数组分成两个子数组,然后对这两个子数组分别进行排序,最后将它们合并成有序的数组。 #### 快速排序的基本步骤: 1. 选择一个基准元素(pivot):从数组中选择一个元素作为基准元素。通常选择数组 ......
算法

队列(Queue)

## 用途 1.访问资源的时候(比如几个电脑让同一个打印机进行打印)请求会被存在一个队列中,cpu处理进程也是一样的。 ##实现 1.循环数组方式实现 ```c++ class array_queue{ int front=-1,rear=-1;//队列的头指针和尾指针 int size; int* ......
队列 Queue

高并发三大法宝之 缓存,消息队列,异步任务

1.缓存(常用redis) 将热点数据或者经常需要进行read的数据放到redis或者其他缓存中,可以极大的降低数据库的压力,遇到流量高峰时,不至于一下子就把数据库压垮了,使用springcache配合redis继续使用,也可以很方便的对数据进行缓存。 springcache 几个常用注解 @Cac ......
队列 缓存 法宝 任务 消息

代码随想录算法训练营第五天|力扣242.有效的字母异位词、力扣242.两个数组的交集、力扣202.快乐数、力扣1.两数之和

# 哈希表 ## 哈希表理论基础 哈希表,又称为散列表(Hash Table),是根据关键码的值而直接进行访问的数据结构 其中,数组就是一张哈希表;表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素 - 哈希表解决的问题:一般哈希表都是用来快速判断一个元素是否出现在集合中 - 哈希函数: ......
随想录 之和 训练营 数组 交集

代码随想录算法训练营第三天| LeetCode 242.有效的字母异位词 349. 两个数组的交集 1. 两数之和

242.有效的字母异位词 卡哥建议: 这道题目,大家可以感受到数组用来做哈希表给我们带来的遍历之处。 题目链接/文章讲解/视频讲解: https://programmercarl.com/%E5%93%88%E5%B8%8C%E8%A1%A8%E7%90%86%E8%AE%BA%E5%9F%BA%E ......
随想录 之和 训练营 数组 交集

剑指 Offer 59 - II. 队列的最大值(中等)

题目: ![](https://img2023.cnblogs.com/blog/2679751/202307/2679751-20230731223651941-47058860.png) ``` class MaxQueue { public: deque que1; //使用两个双端栈(deq ......
最大值 队列 Offer 59 II

数据结构与算法(三):单向链表

# 链表定义 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑是通过链表种的指针链接次序实现的。链表由一系列节点组成,每个节点包括两部分:一个是存储数据元素的数据域,一个是存储下一个节点地址的指针域。单向链表从头节点(也可以没有头节点)开始,指针指向下一个节点的位置,只能由上一个节点 ......
数据结构 单向 算法 结构 数据

[代码随想录]Day05-哈希表 part01

## 题目:[242. 有效的字母异位词](https://leetcode.cn/problems/valid-anagram/) ### 思路: 很简单,就是看两个字符串每个字母出现的次数是不是相同的。 可以用两个数组来比较,也可以用一个数组比较。 ### 代码: 一个数组 ```go func ......
随想录 随想 代码 part Day

排序算法

**时间复杂度:** 由于计算机的性能不同,无法准确地确定一个算法的执行时间 因此使用执行算法的次数来代表算法的时间复杂度 一般用O(公式)来表示 **空间复杂度:** 执行一个程序(算法)所需要的内存空间的大小,是对一个算法在运行过程中临时占用存储空间大小的衡量 通常来说,只要这个算法不涉及动态分 ......
算法

NET/C#中SM2/SM3国密加密算法

using Org.BouncyCastle.Asn1; using Org.BouncyCastle.Asn1.GM; using Org.BouncyCastle.Asn1.X9; using Org.BouncyCastle.Crypto; using Org.BouncyCastle.Cry ......
算法 SM NET SM2 SM3

[计算几何] 2 二维凸包/笨蛋(我)也能看懂的二维凸包算法

二维凸包,这篇博客已经说得够好了,介绍了**斜率逼近法、Jarvis算法,Graham算法,还有Andrew算法**。我这篇博客只会非常详细的介绍**Andrew算法**。 [数论小白都能看懂的平面凸包详解 - ShineEternal的笔记小屋 - 洛谷博客 (luogu.com.cn)](htt ......
凸包 几何 算法 笨蛋

算法训练 与1连通的点的个数

主要思想是并查集,不懂的可以先了解下这个算法再来做题就明白了。c++实现: #include<iostream> #include<vector> using namespace std; int f[10000]; //找根节点 int find(int x) { if (f[x] != x) f ......
算法 个数

代码随想录-哈希表-c++总结

哈希表内容整体简单,关键是要有利用map映射的思想,以及巩固一些c++标准库的操作 这次三数之和一题没有直接做出来,关键在于如何查重一点比较绕 15. 三数之和 - 力扣(LeetCode) 利用排序+双指针解决三数之和的思路更加清楚 此外,四数之和中,四个数相加会溢出int,应改为 ......
随想录 随想 代码

强化学习——DQN算法

1、DQN算法介绍 DQN算与sarsa算法和Q-learning算法类似,对于sarsa和Q-learning,我们使用一个Q矩阵,记录所有的state(状态)和action(动作)的价值,不断学习更新,最后使得机器选择在某种状态下,价值最高的action进行行动。但是当state和action的 ......
算法 DQN

redis做消息队列学习

转自:https://juejin.cn/post/7094272373930590245#heading-9,https://zhuanlan.zhihu.com/p/344269737 1、消息队列基本 作用:应用解耦(作为中介)、削峰填谷。redis做mq的优点:轻量级,使用和运维成本低。 m ......
队列 消息 redis

代码随想录第四天|力扣24.两两交换链表节点、力扣19.删除链表的倒数第N个结点、力扣面试02.07链表相交、力扣142.环形链表

## 两两交换链表中的节点(力扣24.) - dummyhead .next = head; - cur = dummyhead; - while(cur.next!=null&&cur.next.next!=null) - temp = cur.next; - temp1=cur.next.nex ......
随想录 结点 环形 节点 随想

[算法学习笔记] 强连通分量

### DFS生成树 在介绍强连通分量前,我们先来了解一下DFS生成树。 一棵DFS生成树分为树边,前向边,返祖边(一说反向边),横叉边。我们来画图解释一下: ![image](https://img2023.cnblogs.com/blog/3195128/202307/3195128-20230 ......
分量 算法 笔记

C#冒泡排序算法

冒泡排序实现原理 冒泡排序是一种简单的排序算法,其原理如下: 从待排序的数组的第一个元素开始,依次比较相邻的两个元素。 如果前面的元素大于后面的元素(升序排序),则交换这两个元素的位置,使较大的元素“冒泡”到右侧。 继续比较下一对相邻元素,重复步骤2,直到遍历到数组的倒数第二个元素。此时,最大的元素 ......
算法

栈和队列

栈:先进后出(子弹压樘),栈顶插入,栈顶删除,常见的应用是递归调用的实现 队列:先进先出(做核酸),队尾插入,队头删除 栈和队列顺序存储更为常见 栈 栈是向低地址增长的 如果a和b紧挨着,b一定在a的左边 如果b和c紧挨着,c一定在b的左边 ......
队列

代码随想录算法训练营第四天| LeetCode 24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 142.环形链表II

24. 两两交换链表中的节点 卡哥建议:用虚拟头结点,这样会方便很多。 本题链表操作就比较复杂了,建议大家先看视频,视频里我讲解了注意事项,为什么需要temp保存临时节点。 题目链接/文章讲解/视频讲解:https://programmercarl.com/0024.%E4%B8%A4%E4%B8% ......
节点 随想录 环形 训练营 随想

.NET中使用RabbitMQ延时队列和死信队列

# RabbitMQ延时队列和死信队列 # 延时队列和死信队列 > 延时队列是RabbitMQ中的一种特殊队列,它可以在消息到达队列后延迟一段时间再被消费。 > > 延时队列的实现原理是通过使用消息的过期时间和死信队列来实现。当消息被发送到延时队列时,可以为消息设置一个过期时间,这个过期时间决定了消 ......
队列 死信 RabbitMQ NET

文心一言 VS 讯飞星火 VS chatgpt (68)-- 算法导论6.5 7题

文心一言 VS 讯飞星火 VS chatgpt (68)-- 算法导论6.5 7题 # 七、试说明如何使用优先队列来实现一个先进先出队列,以及如何使用优先队列来实现栈(队列和栈的定义见 10.1 节。) ## 文心一言: 优先队列是一种数据结构,其中每个元素都有一个关联的优先级或权值。在优先队列中, ......
文心 导论 算法 chatgpt VS

408-数据结构算法题笔记

# 常用基本操作 ```cpp 1.定义整数无穷大 #define INT_MAX=0x7f7f7f7f; 2.绝对值函数 int abs_(int x){ if(x<0)return -x; return x; } 3.最大最小值函数(一般可以直接写吧) int min(int a,int b){ ......
数据结构 算法 结构 笔记 数据

ENVI、ERDAS计算Landsat 7地表温度:单窗算法实现

本文介绍基于**ENVI**与**ERDAS**软件,对**Landsat 7**遥感影像数据加以**单窗算法**的地表温度(**LST**)反演操作。 [TOC](基于ENVI与ERDAS的Landsat 7 ETM+单窗算法地表温度(LST)反演) # 1 原理部分与前期操作准备 **更新**: ......
地表 算法 温度 Landsat ERDAS

基于Alexnet深度学习神经网络的人脸识别算法matlab仿真

1.算法理论概述 人脸识别是计算机视觉领域中一个重要的研究方向,其目的是识别不同人的面部特征以实现自动身份识别。随着深度学习神经网络的发展,基于深度学习神经网络的人脸识别算法已经成为了当前最先进的人脸识别技术之一。本文将详细介绍基于AlexNet深度学习神经网络的人脸识别算法的实现步骤和数学公式。 ......
神经网络 人脸 算法 深度 神经

代码随想录算法训练营第三天|力扣203.移除链表元素、力扣707.设计链表、力扣206.反转链表

# 链表 - 定义:通过指针串联在一起的线性结构,每一个节点由两个部分组成:数据域和指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null,即为空指针。 ## 链表类型 1. 单链表 2. 双链表 3. 循环链表,即链表首尾相连,可以解决约瑟夫环问题 ## 链表的存储方式 数组在内存中 ......
随想录 训练营 随想 算法 元素

编程随想曲周刊(第38期)

这里记录每周的所见所闻,周日发布。点击阅读原文可以直接访问文章链接。 # 工具 1. [为公众号排版做点微小的贡献](https://mp.weixin.qq.com/s/FWgUHSj8nYia6Oz61r37aQ) # 文章 1. [我收楼了,遇到第一个坎](https://mp.weixin. ......
随想曲 随想 周刊

聚类算法

#### 聚类算法 ​ 聚类算法是机器学习中涉及对数据进行分组的一种算法。在给定的数据集中,我们可以通过聚类算法将其分成一些不同的组。在理论上,相同的组的数据之间有**相同的属性或者是特征,不同组数据之间的属性或者特征相差就会比较大**。聚类算法是一种**非监督学习算法**,并且作为一种常用的数据分 ......
算法