算法 随想录 柠檬水 队列
常见排序算法以及Java实现
快速排序 class Solution { //创建随机对象,便于后于选基准值 static Random random = new Random(); public int[] sortArray(int[] nums) { int n = nums.length; int left = 0; i ......
【LBLD】小而美的算法技巧:差分数组
【LBLD】差小而美的算法技巧:差分数组 差分数组 差分数组的第 i 个元素存储原数组第 i 个元素和第 i-1 个元素的差值,其中,差分数组的首元素的值 diff[0] 为原数组首元素的值 nums[0]。 1109.航班预订统计 class Solution { public: vector<i ......
使用 MybatisPlusCore 自带的雪花算法生成不重复数字
这里不介绍雪花算法的实现原理,可以自行搜索查阅网上的资料。这里主要介绍雪花算法的使用场景,如何调用第三方类库 Mybatis Plus Core 自带的方法来使用雪花算法。 雪花算法的主要使用场景,就是生成不重复的数字,作为数据库表的主键使用。你可能会使用 uuid 作为主键,但是其占用 16 个字 ......
【算法学习】图论模板
注意! 并查集只适用于无向图。 DFS 特点:当前层可以获得下层状态、向下层不断遍历 处理方式:递归 模板: // dfs注意剪枝 void dfs(int u){ if(u > n) { 输出路径 return; } for(int i = 0; i < n;i ++) // 遍历点 { if(条 ......
算法中的初始化0x3f
写算法的时候,我们常常需要用到设置一个常量用来代表“无穷大”,比如对于int类型的数,有的人会采用INT_MAX,即0x7fffffff作为无穷大。 但是以INT_MAX为无穷大常常面临一个问题,即加一个其他的数会溢出。而这种情况在动态规划,或者其他一些递推的算法中常常出现,很有可能导致算法出问题。 ......
MQ(消息队列)常见问题梳理
MQ 中 broker 的作用,有无broker有什么差异? MQ(Message Queue)中的broker是消息队列的核心组件之一,它的作用是接收、存储、分发和传递消息。具体来说,broker主要有以下几个作用: 接收消息:当生产者发送消息时,消息会被发送到MQ中的broker节点。 存储消息 ......
算法随想Day53【单调栈】| LC84-柱状图中最大的矩形
int largestRectangleArea(vector& heights) { int result = 0; stack st; heights.insert(heights.begin(), 0); heights.push_back(0); st.push(0); for (int i ......
算法随想Day52【单调栈】| LC503-下一个更大元素Ⅱ、LC42-接雨水
LC503. 下一个更大元素Ⅱ 对于“每日温度”,相当于对nums数组,进行了两次遍历。用i % size所得余数作为下标,且循环的圈数为size * 2 vector<int> nextGreaterElements(vector<int>& nums) { int size = nums.siz ......
算法随想Day51【单调栈】| LC739-每日温度、LC496-下一个更大元素Ⅰ
LC739. 每日温度 vector<int> dailyTemperatures(vector<int>& temperatures) { int size = temperatures.size(); vector<int> result(size, 0); vector<int> sta; s ......
Quine-McCluskey算法简介及其C++代码实现
Algorithm List all minterms (and don't care terms) Step by step merging one layer at a time (note that only two minimum terms with a distance of 1 can ......
机器——算法
上位机(计算机视觉)(AGX) 下位机(单片机)控制具体硬件(STM32) GPIO STM32 基于ARM的32位微控制器 F通用类型 407产品子系列 Z引脚数目:T36 C48 R64 V100 Z144 G闪存存储器容量 实验内容 控制LED灯闪烁 需要具备的能力 单片机编程能力 C/C++ ......
golang蒙特卡洛树算法实现五子棋AI
已经实现蒙特卡洛树算法的通用逻辑,只需要对应结构体实现相关接口就可以直接使用该算法。 优化算法主要优化GetActions生成下一步动作,要尽可能少,去掉无意义的动作。 以及优化ActionPolicy从众多动作挑选比较优秀的动作。对应五子棋就是执行该动作后当前局面评分最高。 package mai ......
进程调度算法
1、先来先服务FCFS 非抢占式,按照请求顺序来进行调度。 有利于长作业,不利于短作业,短作业等待时间长。 2、最短作业优先 非抢占式,按照运行时间最短顺序调度。 长作业可能饿死,等待短作业一直得不到运行。 3、最短剩余时间优先 短作业的抢占式版本,按剩余时间调度。 4、时间片轮转 按FCFS原则排 ......
【入门】Go语言排序算法详解
1、冒泡排序 冒泡排序是一种简单的排序算法,它重复地遍历要排序的列表,比较相邻的两个元素,并在必要时交换它们的位置,直到没有任何一对元素需要交换为止。该算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 package main import "fmt" // 我们定义了一个名为`bu ......
【算法专题】容斥原理
【算法专题】容斥原理 题 E. Devu and Flowers https://codeforces.com/contest/451/problem/E 前置知识:隔板法 然后正难则反,把至多取 $a_i$ 个转化为 至少取 $a_i+1$ 的反问题,就能套用隔板法的公式了。 答案即为: #inc ......
代码随想录Day17-Leetcode110.平衡二叉树,257. 二叉树的所有路径,404.左叶子之和
110.平衡二叉树 题目链接:https://leetcode.cn/problems/balanced-binary-tree/ 一个显然但似乎不太高效的方法是: 通过递归获取左右子树高度,判断差; 然后递归判断左右结点; 那么一个显然的改进就是后序遍历 /** * Definition for ......
递归算法
递归算法 递归算法是一种通过调用自身来解决问题的算法。递归算法通常涉及到将一个问题划分为较小的子问题来解决,并在子问题中调用自身来完成。 递归算法的基本思想是,将一个大问题转化为一个或多个相同结构的小问题,直到问题变得足够小以便直接解决。然后将这些小问题的解组合成原始问题的解。在递归算法中,一个函数 ......
算法导论-第2章-算法基础
第2章 算法基础 2.1 插入排序(Insertion sort) 输入:$n$个数的序列$<a_1,a_2,\cdots,a_n>$ 输出:输入序列的一个排列$<a_1^{'},a_2^{'},\cdots,a_n^{'}>$,满足$a_1^{'} \le a_2^{'} \le \cdots \ ......
算法导论-第1章-算法在计算中的作用
第1章 算法在计算中的作用 1.1 算法(Algorithms) 非形式地说,算法(algorithm)是任何明确定义的计算过程,该过程取某个值或值的集合作为输入并产生某个值或某个值的集合作为输出。因此算法就是将输入转换为输出的一系列计算步骤。 Informally, an algorithm is ......
VBA 对象数组排序算法分享
Function SrotObjectByProperty(objsToSort As Variant, PropertyName As String, Optional 降序 As Boolean = True) If IsEmpty(objsToSort) Then Exit Function ......
day10| 225.用队列实现栈;232.用栈实现队列
题目简述: 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 实现 MyStack 类: void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。bo ......
代码随想录day 32● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II
122.买卖股票的最佳时机II 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: [7,1,5,3,6 ......
基于凸集上投影(POCS)的聚类算法
POCS:Projections onto Convex Sets。在数学中,凸集是指其中任意两点间的线段均在该集合内的集合。而投影则是将某个点映射到另一个空间中的某个子空间上的操作。给定一个凸集合和一个点,可以通过找到该点在该凸集合上的投影来进行操作。该投影是离该点最近的凸集内的点,可以通过最小化 ......
【LBLD】小而美的算法技巧:前缀和数组
【LBLD】小而美的算法技巧:前缀和数组 一维数组中的前缀和 class NumArray { private: vector<int> preSum; public: NumArray(vector<int>& nums) { preSum.push_back(0); for (int i = 1 ......
2023-04-01-循环队列CycleSqQueue的基本操作
//循环链表 //牺牲一个单元来区分队空还是队满 #include <stdio.h> #include <stdbool.h> #define MAXSIZE 6 typedef struct { int data[MAXSIZE]; int front,rear; }CySqQueue; voi ......
mp雪花算法生成的id到前端丢失精度问题
mp生成的id是Long型18位,但是js处理到16位就四舍五入了,解决办法就是在服务器转成字符串传给前端 WebMvcConfig 要继承 WebMvcConfigurationSupport,重写里面的 extendMessageConverters方法 @Override protected ......
7 - RSA 算法
RSA 算法 我的博客 原书:《Understanding Cryptography: A Text book for Students and Practitioners》 胡言乱语 在 Whitfield Diffie 与 Martin Hellman 于 1976 年发表关于公钥加密的论文,掀 ......
基于matlab的高精度信号峰值检测算法
1.算法描述 峰值检验是示波表中数据采集方式之一, 这种技术起源于存储深度不能满足捕获毛刺的需要。如果用模拟示波器去观察, 只有当毛刺信号是重复性的并且和主信号同步时, 才能看到毛刺信号 。由于毛刺源于其他电路系统, 所以这些毛刺只是偶尔发生, 并且和主信号不同步。正常采样方式时, 要捕捉窄的毛刺, ......