参数 向量 粒子 算法
[Trick] [算法学习笔记] 线段树
事先声明:本文并非线段树教学。只是一些理解Trick。若您需从0学起线段树建议您移步其他博文呢qwq 感谢 Idea 提供 [尺子姐姐的博客!](https://www.cnblogs.com/ruierqwq/),尺子好闪,拜谢尺子! 我们在学习线段树的时候,对于乘法“lazy tag 先乘再加” ......
【数据结构】排序 内部排序算法的比较和应用
#### 1.简单复习一下前面学到的排序算法 **三种插入排序:** **直接插入:** 依次将后面无序序列中头部的元素插入前面的有序序列中(找到插入位置,这个位置后面的元素一律后移) **折半插入:** 相比直接插入只是用折半查找的方式查找插入位置,元素的移动操作不变 **希尔排序:** 把相隔一 ......
蒙特卡洛算法代码
蒙特卡洛算法是一个常用的解题方法之一。以下是一个简单的蒙特卡洛求解圆周率π的代码示例: 点击查看代码 ``` import random def monte_carlo_pi(n): count = 0 total = n for _ in range(n): # 在单位正方形内随机生成点的坐标 x ......
C++遍历TypeList(可变模板参数)的简单办法
这里例举了两种方案,一种是基于C++ 17的constexpr,实现起来更精简。另外一种使用传统的方式,C++ 11就可以用了。 另外C++11的方案也是一种计算不定参数模板参数个数的方法。 #include <iostream> #include <string> // in C++ 17 #if ......
jvm参数与gclog
http://ifeve.com/logging-stop-the-world-pauses-in-jvm/ https://blog.csdn.net/ligeforrent/article/details/80834154 ......
文心一言 VS 讯飞星火 VS chatgpt (79)-- 算法导论7.4 4题
# 四、请用go语言,证明:RANDOMIZED-QUICKSORT 期望运行时间是 Ω(nlgn)。 ## 文心一言: 首先,为了证明RANDOMIZED-QUICKSORT的期望运行时间是Ω(nlg n),我们需要证明在最坏的情况下,该算法的运行时间是O(nlg n)。然后,我们需要证明在最坏的 ......
代码随想录算法训练营第二十一天| 530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236. 二叉树的最近公共祖先
530.二叉搜索树的最小绝对差 卡哥建议:需要领悟一下二叉树遍历上双指针操作,优先掌握递归 题目链接/文章讲解:https://programmercarl.com/0530.%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E6%9C%8 ......
学习笔记412—词向量【Word2Vec】
Word2Vec Word2Vec 是 google 在2013年提出的词向量模型,通过 Word2Vec 可以用数值向量表示单词,且在向量空间中可以很好地衡量两个单词的相似性。 简述 我们知道,在使用神经网络处理数据的时候,神经网络只能处理数字向量或者矩阵,他不可能理解文本、图像本身。那么,图像是 ......
go语言:可变参数
1、go 语言通过占位符... 实现可变参数。 2、对于未知类型通过 interface{}实现。interface{}可以理解为c/c++中void类型 具体如下: ``` package main import ( "fmt" ) /// 此时需指定类型int func TestFuncInt( ......
学习笔记411—【词向量基础】:one-hot
【词向量基础】:one-hot 词向量(word vector),也叫词嵌入(word embedding),是一种词表征形式,将词从符号形式映射为向量形式,渐渐演变成了一种知识表示的方法。将词语从符号表示形式转换为了向量表示形式,方便了机器对自然语言的计算,因此,词向量几乎成为了所有自然语言处理和 ......
[代码随想录]Day23-回溯算法part03
## 题目:[39. 组合总和](https://leetcode.cn/problems/combination-sum/description/ "39. 组合总和") ### 思路: 一样的递归套路: 1. 函数参数:因为要求和,所以有一个当前和的参数;另外因为**要保证没有重复的结果**,所 ......
代码随想录算法训练营第二十天| 654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树
654.最大二叉树 卡哥建议:又是构造二叉树,昨天大家刚刚做完 中序后序确定二叉树,今天做这个 应该会容易一些, 先看视频,好好体会一下 为什么构造二叉树都是 前序遍历 题目链接/文章讲解:https://programmercarl.com/0654.%E6%9C%80%E5%A4%A7%E4%B ......
排序算法
1. 常用排序 1.1 归并排序 1.2 快速排序 快速排序优化 1.3 堆排序 2. 低级排序 2.1 冒泡排序 2.2 直接插入排序 2.3 希尔排序 3. 基于比较的排序算法时间复杂度下限证明 4. 排序算法会出现不稳定的状态原因 5. 非比较排序 5.1 计数排序 5.2 桶排序 5.3 基 ......
扁扁笨算法-AVL树的插入与删除
# 扁扁笨算法-AVL树的插入与删除 ## 扁扁笨简述 扁扁笨算法是将不平衡子树打成一条中序遍历的直链(实质是一条升序链),然后按照寻找中点并提起中点构造二叉树的一种朴素做法。扁扁笨算法是一种确定平衡树调整结构之后填入数字的辅助手段,本身并没有什么出彩的地方。 ## 理论简介 AVL树插入之后一般会 ......
扁扁笨算法-B树的插入与删除
# 扁扁笨算法-B树的插入与删除 ## 扁扁笨简述 扁扁笨算法是将不平衡子树打成一条中序遍历的直链(实质是一条升序链),然后按照寻找中点并提起中点构造二叉树的一种朴素做法。扁扁笨算法是一种确定平衡树调整结构之后填入数字的辅助手段,本身并没有什么出彩的地方。 ## 理论简介 B树是一种强结构弱数据的数 ......
【图论#02】岛屿数量,flood fill算法的代码实现与优化
### 岛屿数量 给你一个由 `'1'`(陆地)和 `'0'`(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包围。 **示例 1:** ``` 输入:grid = [ ["1" ......
使用MD5算法和sha512sum校验和检验文件完整性
[TOC] # 一.前言 在我们日常生活中,无论是下载文件、传输数据还是备份重要信息,如何确保数据的完整性始终是一个不能忽视的问题。本文将向大家介绍如何使用MD5算法和sha512sum校验和来进行文件完整性的验证。 # 二.MD5算法简介 MD5算法,全称Message-Digest Algori ......
c++算法之哈希表
啥是哈希表 哈希表,类似散列表,是一种存储数据的一种方式。只能说是有点奇葩。 他是通过将值转换成数组的下标,也就是f[x]=x的意思,大家估计都能理解吧😃。 所以他可以通过这样的方式存储后遍历数组就可以发现他家可以自动排序,而且只需O(n)时间复杂度。 但是所需要的空间式数据中的最大值。 输入数据 ......
数据结构与算法八股
讲一讲插入排序 讲一讲冒泡排序 讲一讲快速排序 讲一讲堆排序 讲一讲归并排序 dp dp数组的定义及含义:dp[num1.length+1][num2.length+1],为什么要+1呢,因为我们要判断他与前面的关系涉及到i-1,所以遍历需要从1开始 return的是什么 如果初始化时候size+1 ......
FlashAttention算法详解
这篇文章的目的是详细的解释Flash Attention,为什么要解释FlashAttention呢?因为FlashAttention 是一种重新排序注意力计算的算法,它无需任何近似即可加速注意力计算并减少内存占用。所以作为目前LLM的模型加速它是一个非常好的解决方案,本文介绍经典的V1版本,最新的 ......
【算法】用c#实现自定义字符串编码及围栏解码方法
编写一个函数/方法,它接受2个参数、一个字符串和轨道数,并返回ENCODED字符串。 编写第二个函数/方法,它接受2个参数、一个编码字符串和轨道数,并返回DECODED字符串。 然后使用围栏密码对其进行解码。 这种密码用于通过将每个字符沿着一组“竖状轨道”依次放在对角线上来对字符串进行编码。首先开始 ......
分布式共识算法之Raft设计与实现
### 如何理解分布式共识? 多个参与者 针对 某一件事 达成完全 一致 :一件事,一个结论 已达成一致的结论,不可推翻 ### 有哪些分布式共识算法? - Paxos:被认为是分布式共识算法的根本,其他都是其变种,但是 Paxos 论文中只给出了单个提案的过程,并没有给出复制状态机中需要的 mul ......
Bcrypt加密算法相关
### 简介 Bcrypt是一个跨平台的文件加密工具,由它加密的文件可在所有支持的操作系统和处理器上进行转移。它的口令必须是8至56个字符,并将在内部被转化为448位的密钥。spring-security内部就是使用这个算法来对用户密码加密的(BCryptPasswordEncoder)。 ### ......
CGAL入门——凸壳算法
一、凸壳算法 凸壳是能包含点集合的最小凸多边形,即凸壳是点集合的一个子集,将这个子集的点连接起来可以包含点集中所有的点。 二、数组中点的凸壳 #include <iostream> #include <CGAL/Exact_predicates_inexact_constructions_kerne ......
2023-08-20:用go语言写算法。给定一个由'W'、'A'、'S'、'D'四种字符组成的字符串,长度一定是4的倍数, 你可以把任意连续的一段子串,变成'W'、'A'、'S'、'D'组成的随意状
2023-08-20:用go语言写算法。给定一个由'W'、'A'、'S'、'D'四种字符组成的字符串,长度一定是4的倍数, 你可以把任意连续的一段子串,变成'W'、'A'、'S'、'D'组成的随意状态, 目的是让4种字符词频一样。 返回需要修改的最短子串长度。 完美走位问题。 输入:s = "QQQ ......
Prim算法是一种用于解决最小生成树问题的贪心算法。它通过逐步选择边来构建最小生成树,直到包含了所有的顶点。以下是Prim算法的Java代码示例:
```java import java.util.*; class PrimAlgorithm { private static final int INF = Integer.MAX_VALUE; public void primMST(int[][] graph) { int vertices ......
Kruskal算法是一种用于寻找图的最小生成树的贪心算法。它通过按照边的权重递增的顺序选择边,并将其添加到生成树中,同时确保不会形成环路。
Kruskal算法可以通过生活中的例子来解释。我们可以将城市之间的道路网络看作是一个图,每个城市是一个顶点,道路是连接城市的边,而道路的长度可以看作是边的权重。假设我们想要修建一条连接所有城市的最小成本道路网络。 首先,我们需要找到连接城市的所有道路,并按照道路的长度进行排序。然后,我们从最短的道路 ......
扩展欧几里得算法
# 裴蜀定理 对于任意正整数 $a,b$,记 $g=(a,b)$,一定存在整数 $x,y$,使得 $ax+by=g$,且能凑出的数一定是 $g$ 的倍数。 首先由于 $a,b$ 都是 $g$ 的倍数,所以能凑出的数必定是 $g$ 的倍数。 关键在于怎么证明一定存在整数 $x,y$,使得 $ax+by ......
STL容器和算法
[toc] # STL容器和算法 ## 基本概念 标准模板库,主要分为容器、算法、迭代器。 通过迭代器访问容器中的数据,并进行算法操作。 所有代码采用模板类和模板函数的方式。 ## 容器 ### 容器的分类 #### 序列式容器 每个元素都有固定位置,该位置取决于插入时机和地点,和元素值无关。 ve ......