算法 理论raft cap

前缀和/差分——acwing算法基础课笔记

个人笔记,欢迎补充,指正。 一维前缀和 对于数组: a[1],a[2],a[3]...a[n]; 其前缀和数组为 s[i] = a[1] + a[2] + ... + a[i]; 下标必须从1开始 求前缀和 1 for(int i=1;i<n;++i) 2 s[i] = s[i-1] + a[i]; ......
基础课 前缀 算法 基础 笔记

代码随想录算法训练营第3天 | leetcode203、leetcode707、leetcode206

(本合集全部为Go语言实现) 相关文章链接:203题解 707题解 206题解 相关视频链接: Leetcode203 状态:秒了 实现过程中的难点:链表遍历一定要记得指针后移。另外,在头指针前加入一个新的临时头节点可以统一整个遍历过程,否则需要先确定初始时两指针的状态 个人写法 /** * Def ......
leetcode 随想录 训练营 随想 算法

代码随想录算法训练营第2天 | leetcode977、leetcode209、leetcode59

(本合集全部为Go语言实现) 相关文章链接:977题解 209题解 59题解 相关视频链接:977视频 209视频 59视频 Leetcode977 状态:按自定义排序策略的方式秒了。尝试使用双指针法,但是以为是需要原地进行操作,试了一下失败了 实现过程中的难点:需要明确的是对撞指针两者的平法比较时 ......
leetcode 随想录 训练营 随想 算法

KMP字符串匹配算法 整理

KMP 整理 题面 视频详解 KMP 的作用 KMP 算法的主要作用是求出一个字符串(模式串)是否为另一个字符串(主串)的子串,并同时求出它出现的位置,也即字符串匹配问题。 算法解析 暴力 先说暴力算法: 从头开始枚举模式串位置的起点,然后遍历从起点往后 \(m\) 个字符,检查它是否与模式串完全相 ......
字符串 算法 字符 KMP

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

LeetCode 24. 两两交换链表中的节点 题目链接: LeetCode 24 思路: 交换结点前将cur后第一个结点和第三个结点进行保存,然后修改cur指向头节点后再修改头节点后的结点 class Solution { public: ListNode* swapPairs(ListNode* ......
节点 随想录 环形 训练营 随想

答知识星球朋友疑问:执行 ABAP 代码出现超时的原因,背后的理论和解决方案试读版

有朋友在我的知识星球里提问: 我在bw执行一个fm的时候,出现了运行超时的问题,请问这时候要如何优化这个fm 因为这位朋友没有提供具体的 Function Module 名称,所以只能泛泛而谈一下 ABAP 代码的超时问题。 我们首先要认识一点,为什么 ABAP 代码运行后,理论上会出现超时(tim ......
星球 疑问 背后 解决方案 原因

求最短路径迪杰斯特拉算法

代码运行截图: 完整代码: #include <stdio.h> #include <stdlib.h> #define MaxSize 20 #define MAX 999 typedef struct ArcNode{ //边表 int adjvex; //边表中是顶点号!! struct Ar ......
算法

扩展欧几里得算法

同余方程 \(ax\equiv b(\mod m)\) 二元一次方程 \(ax+by=c\),其中\(a,b,c\)为已知的正整数 这两者可以相互转化,显然对于这个二元一次方程,有: \(ax\mod b=c \mod b\),可以转化为\(ax\equiv c(mod b)\) 裴蜀定理 当我们考 ......
算法

hello算法

hello算法 hello算法-github hello算法-gitee ......
算法 hello

C# 面试常见递归算法

前言 今天我们主要总结一下C#面试中常见递归算法。 C#递归算法计算阶乘的方法 一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。 原理:亦即n!=1×2×3×...×(n-1)×n。阶乘亦可以递 ......
算法 常见

【算法 Java】递归,阶乘的递归实现,斐波那契数列的递归实现

递归 定义:方法直接或间接地调用方法本身 思路:将大问题转化为一个与原问题相似的规模更小的问题 注意:递归死循环会导致栈内存溢出 一些使用递归求解的问题 阶乘 Factorial.java import java.util.Scanner; public class Factorial { publ ......
阶乘 数列 算法 Java

二分图最大匹配模板(匈牙利算法)

二分图最大匹配模板(匈牙利算法) P3386 【模板】二分图最大匹配 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) struct augment_path { vector<vector<int> > g; vector<int> pa; // 匹配 vector<int> pb ......
算法 模板

高斯混合模型:GMM和期望最大化算法的理论和代码实现

高斯混合模型(gmm)是将数据表示为高斯(正态)分布的混合的统计模型。这些模型可用于识别数据集中的组,并捕获数据分布的复杂、多模态结构。 gmm可用于各种机器学习应用,包括聚类、密度估计和模式识别。 在本文中,将首先探讨混合模型,重点是高斯混合模型及其基本原理。然后将研究如何使用一种称为期望最大化( ......
算法 模型 理论 代码 GMM

51k+ Star!动画图解、一键运行的数据结构与算法教程!

hello-algo(《Hello 算法》) —— 动画图解、一键运行的数据结构与算法教程,支持 Java、C++、 Python、 Go、 JS、 TS、 C#、 Swift、 Rust、 Dart、 Zig 等语言。 ......
数据结构 算法 结构 动画 教程

acwing week2 基础算法3总结

acwing week2 基础算法3总结 总结点1:双指针算法 //常用模版框架 for (int i = 0, j = 0; i < n; i ++ ) { while (j < i && check(i, j)) j ++ ; } 常见问题分类: (1) 对于一个序列,用两个指针维护一段区间 ( ......
算法 基础 acwing week2 week

区间合并算法总结

区间合并使用贪心算法,对于区间问题,通常需要对左端点排序、右端点排序或者左端点和右端点双关键字排序。区间合并算法的算法步骤: 1. 按照区间左端点排序。 2. 扫描过程中,每次维护一个当前的区间。 题目链接: https://www.acwing.com/problem/content/805/ 代 ......
区间 算法

离散化算法总结

离散化是将大范围的数字映射到小范围的区间内,适用于稀疏的区间。 两个问题需要考虑: 1. 原数组中可能有重复元素,需要去重。 2. 如何算出离散化后的值(离散化后保序,使用二分)。 题目链接: https://www.acwing.com/problem/content/804/ 代码: #incl ......
算法

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

LeetCode 203.移除链表元素 视频链接: LeetCode203 思路: 根据链表的性质,将目标值对应的节点保存在一个临时节点中,再重新设置cur下一个节点,再将临时节点进行删除 class Solution { public: ListNode* removeElements(ListN ......
随想录 训练营 随想 算法 元素

Tomasulo算法小结

总结 L.D F6, 24(R2) L.D F2, 12(R3) MUL.D F0, F2, F4 SUB.D F8, F6, F2 DIV.D F10, F0, F6 ADD.D F6, F8, F2 以以上的代码为例,当指令MUL.D即将确认时,保留站、load缓冲器以及寄存器状态表中的内容。 ......
小结 算法 Tomasulo

文心一言 VS 讯飞星火 VS chatgpt (147)-- 算法导论12.2 2题

二、用go语言,写出 TREE-MINIMUM 和 TREE-MAXIMUM 的递归版本。 灵捷3.5 。 文心一言: 以下是用 Go 语言编写的树的最大值和最小值的递归版本代码: package main import ( "fmt" ) type TreeNode struct { Val in ......
文心 导论 算法 chatgpt VS

数据结构与算法之单链表-----黑马程序员(26-35)

1.链表的概念 在计算机科学中,链表是数据元素的线性集合,其每个元素都指向下一个元素,元素储存上并不连续。 创建链表如图所示和相关代码 public class danlianbiao { private Node head=null;//头部第一个结点 private static class N ......
数据结构 黑马 程序员 算法 结构

文件流(理论)

......
理论 文件

【管理信息系统】03. 三个理论来源

管理的定义 管理是为了某种目标,应用一切思想、理论和方法去合理地计划、组织、指挥、协调和控制他人,调度各种资源。如人、财、物、设备、技术和信息等,以求用最小的投入去获得最好或最大的产出目标。 信息的定义 信息是经过加工后的数据,它对接收者的行为产生影响,它对接收者的决策具有价值。 对接收者有用的,才 ......
三个 来源 理论 系统 信息

6、常用算法和正则表达式

常用算法 double x=-92.42,y=25.98; double result1=qAbs(x); //取正数 qDebug() << "x="<<x<<";result="<<result1; double maxResult=qMax(result1,y); // 求2个数的最大数 qD ......
正则 表达式 算法 常用

一个算法笨蛋的11月leetCode刷题日记

时间 情况 2021年10月29日 时隔一年,第三次重做反转链表,又没做出来,太废了。 2021年11月1日 时隔两天,第四次重做反转链表,轻松写出 【21】合并两个有序链表(思路:想象两个有序链表,需要新建两个next指向头节点的空node,一个用于最后返回.next,一个用于接收最小的node) ......
算法 笨蛋 leetCode 日记

时间复杂度为 O(n^2) 的排序算法

对于小规模数据,我们可以选用时间复杂度为 O(n2) 的排序算法。因为时间复杂度并不代表实际代码的执行时间,它省去了低阶、系数和常数,仅代表的增长趋势,所以在小规模数据情况下, O(n2) 的排序算法可能会比 O(nlogn) 的排序算法执行效率高。不过随着数据规模增大, O(nlogn) 的排序算... ......
复杂度 算法 时间

Viola-Jones 人眼检测算法+meanshift跟踪算法

clc; clear all;close all;clf reset; %% %%%%%%%%%%%%%%%%%%%%%%%% 人眼检测部分开始 %%%%%%%%%%%%%%%%%%%%%% videoObj = VideoReader('eye.mp4');%读视频文件 nframes = get ......
算法 人眼 Viola-Jones meanshift Viola

位运算算法总结

如何求n的二进制表示中第k位是几? 1.先把第k位移到最后一位:n >> k 2.看个位是几:x & 1 综合得到:n >> k & 1返回的是n的二进制表示中第k位 题目链接: https://www.acwing.com/problem/content/803/ 题解: 用到lowbit(x) ......
算法

算法问题求解

算法问题求解通常包括以下几个步骤: 1.理解问题:首先要充分了解问题的背景、需求和具体内容,明确问题的目标。 2.设计算法:设计算法是计算机求解算法的核心部分。算法是解决问题的一种策略或方法。设计算法时,我们需要考虑问题的特性,并选择适当的数据结构和算法技术来设计算法。算法应该具有可行性、高效性和正 ......
算法 问题

快速 log2 取整算法 (O(1) 时间与空间复杂度)

先上核心代码(文末附针对多种整数类型的代码): inline int log_2(int x) { int rst = 0; if (x & 0xffff'0000U) rst += 16, x >>= 16; if (x & 0x0000'ff00U) rst += 8, x >>= 8; if ......
复杂度 时间与空间 算法 时间 log2