算法

面试leetcode算法经典 150 题

数组、字符串 1.合并两个有序数组 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合并后数组不应由 ......
算法 leetcode 经典 150

算法笔记(2)

树 树(Tree)是一种非线性的数据结构,它由一系列节点(Nodes)组成,每个节点可以包含一个值或者一个操作。树的节点之间存在父子关系,每个节点都有一个父节点和若干个子节点。根节点是整个树的起点,它没有父节点,其他节点都是由根节点衍生出来的。 树有多种类型,以下是其中几种常见的类型: 二叉树(Bi ......
算法 笔记

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

LeetCode 242.有效的字母异位词 题目链接: LeetCode242 思路: 使用C++自带的库函数,经过排序后进行比较(使用库函数) class Solution { public: bool isAnagram(string s, string t) { if(s.length() ! ......
随想录 之和 训练营 数组 交集

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

五、用go语言,证明:如果一棵二叉搜索树中的一个结点有两个孩子,那么它的后继没有左孩子,它的前驱没有右孩子。 灵捷3.5 。 文心一言: 为了证明这个性质,我们首先需要明确二叉搜索树(BST)的定义和特性。一个二叉搜索树是一个有序的树,其中每个节点的左子树上的所有值都小于节点的值,而右子树上的所有值 ......
文心 导论 算法 chatgpt VS

基于Levenberg-Marquardt算法的声源定位matlab仿真

1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.算法理论概述 Levenberg-Marquardt 算法是求非线性最小二乘问题的一种优化算法。它在不需要二阶导数信息的情况下,仍然可以取得相当不错的优化效果。它对于具有强非线性性和高维度的问题,尤为适用。 Levenberg ......

树的层序遍历算法框架

1 核心代码框架 点击查看代码 void levelOrder(TreeNode* root) { if (!root) return; queue<TreeNode*> que; que.push(root); while(!que.empty()) { int size = que.size() ......
算法 框架

链表算法笔记

​ 类型:单链表、双链表、循环链表 操作:删除节点、添加节点 在删除节点时,C++里最好是再手动释放所删除的节点,释放内存,但是如Java、Python等语言,它们有自己的内存回收机制,就不需要手动释放了。 使用虚拟头节点的原因 使第一个节点和其他节点的增加和删除操作统一,不然每次针对第一个节点还要 ......
算法 笔记

【算法】远方来信,从数学表达式算法到汇编语法解释器

在繁华的都市中,小悦作为一名软件工程师,每天都在这座钢筋水泥的森林里忙碌。她的生活似乎被工作和各种琐碎的事情填满了,但在这个繁忙的生活中,她总能在工作之余找到一些小小的乐趣。 这天下班后,小悦收到了一封来自国外同学苏菲的email。邮件的内容让她的思绪一下子飘回了那个学习汇编语言的大学时代。 苏菲是 ......
算法 解释器 表达式 语法 来信

数据结构与算法总结-----1

前言 在学习专业知识的过程中,我们经常看到两个词一起出现,数据结构和算法,为什么呢?因为通常选择正确的数据结构往往能够让我们程序算法 的效率变得更好。 解决问题方法的效率,跟数据的组织方式是相关联的。例如在线性表中删除一个数,选择顺序表(数组),时间复杂度是O(N),而用链表删除一个数是比顺序表的效 ......
数据结构 算法 结构 数据

交点 - 射线与AABB交点 - slab算法

slab指的就是一组平行线之间的距离 AABB的width为平行于y轴的两条边之间的距离,叫x-slab;height为平行于x轴的两条边之间的距离,y-slab; x-slab和y-slab重叠的部分,就是矩形框; 判断依据 如果射线和AABB相交,则射线与x-slab相交部分和y-slab相交部 ......
交点 射线 算法 AABB slab

基于TDOA和FDOA的RSSI定位算法matlab仿真

1.算法运行效果图预览 仿真定位误差随着节点数量的增加而降低的变化曲线: 三种算法在不同的网络大小下的估计误差: 2.算法运行软件版本 matlab2022a 3.算法理论概述 TDOA和FDOA是基于测距的定位算法中的两种常见方法,它们都是通过测量信号的到达时间差或频率差来计算节点间的距离,从而实 ......
算法 matlab TDOA FDOA RSSI

基于FPGA的图像形态学膨胀算法实现,包括tb测试文件和MATLAB辅助验证

1.算法运行效果图预览 在FPGA中仿真结果如下所示: 将FPGA中的仿真结果导入到matlab显示二维图,效果如下: 2.算法运行软件版本 matlab2022a vivado2019.2 3.算法理论概述 膨胀操作是形态学中另外一种基本的操作。膨胀操作和腐蚀操作的作用是相反的,膨胀操作能对图像的 ......
形态学 算法 形态 图像 文件

代码随想录算法训练营第5天 | lc242、lc349、lc202、lc1

(本合集全部为Go语言实现) 相关文章链接:242题解 349 202题解 1题解 相关视频链接: Leetcode242 状态:秒了 实现过程中的难点:对于元素固定是小写字母或类似的情况,可以使用数组,因为元素最大数量是固定的 个人写法 func isAnagram(s string, t str ......
随想录 训练营 lc 随想 算法

基于oneAPI的并行算法实践

本文介绍了利用oneAPI,使用sycl编程实现并行算法,完成了矩阵乘法、归并排序、图像卷积三个任务的过程。 矩阵乘法 在此任务中,我们使用sycl编写并行计算的内核。为了提高局部计算效率,我们使用共享内存存储部分矩阵数据。 std::vector<std::vector<float>> matri ......
算法 oneAPI

代码随想录算法训练营第4天 | leetcode24、leetcode19、leetcode面试题02

(本合集全部为Go语言实现) 相关文章链接:24题解 19题解 02.07题解 142题解 相关视频链接: Leetcode24 状态:秒了 实现过程中的难点:对组内两个节点的指针指向流转需要倒腾明白。临时头结点真的很有用 个人写法 func swapPairs(head *ListNode) *L ......
leetcode 随想录 训练营 随想 算法

栈和队列算法总结

知识概览 在数据结构中,栈和队列都属于线性表。栈是先进后出(FILO)的,队列是先进先出(FIFO)的。 代码模板 #include <iostream> using namespace std; const int N = 100010; // ********************** 栈 i ......
队列 算法

链表算法总结

知识概览 链表包括单链表和双链表,这里讨论算法题中的链表。为了考虑算法题中对于时间效率的要求,链表通常是用数组模拟成静态链表的形式,速度快。 单链表可以用来写邻接表(包括n个链表),邻接表可以存储树和图,最短路问题、最小生成树问题、最大流问题都可以用邻接表来存储。 双链表用来优化某些问题。 单链表 ......
算法

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

三、用go语言,写出过程 TREE-PREDECESSOR 的伪代码。 文心一言: 以下是使用Go语言编写的TREE-PREDECESSOR函数的伪代码: func TREE-PREDECESSOR(node) { if node.parent != nil { return node.parent ......
文心 导论 算法 chatgpt VS

前缀和/差分——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* ......
节点 随想录 环形 训练营 随想

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

代码运行截图: 完整代码: #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