- 弗洛伊德算法(Floyd's algorithm),又称为弗洛伊德-沃尔什算法(Floyd-Warshall algorithm),是一种用于在加权图中找到所有顶点对之间最短路径的算法。这个算法适用于有向图和无向图,并且可以处理负权重边,但不能处理负权重循环。弗洛伊德算法(Floyd-Warshall Algorithm)是一种用于计算图中所有顶点对之间最短路径的动态规划算法。本文将详细介绍... 弗洛伊德算法(Floyd's algorithm),又称为弗洛伊德-沃尔什算法(Floyd-Warshall algorithm),是一种用于在加权图中找到所有顶点对之间最短路径的算法。这个算法适用于有向图和无向图,并且可以处理负权重边,但不能处理负权重循环。弗洛伊德算法(Floyd-Warshall Algorithm)是一种用于计算图中所有顶点对之间最短路径的动态规划算法。本文将详细介绍...
- 迪杰斯特拉(Dijkstra)算法是一种用于在加权图中找到单个源点到所有其他顶点的最短路径的算法。它是由荷兰计算机科学家艾兹格·迪科斯彻(Edsger Dijkstra)在1956年提出的。Dijkstra算法适用于处理带有非负权重的图。迪杰斯特拉算法主要特点是从起始点开始,采用贪心算法,每次遍历到始点距离最近且未访问过的顶点的邻接节点,直到扩展到终点为止。适用的是单源路径最短路问题,对于多... 迪杰斯特拉(Dijkstra)算法是一种用于在加权图中找到单个源点到所有其他顶点的最短路径的算法。它是由荷兰计算机科学家艾兹格·迪科斯彻(Edsger Dijkstra)在1956年提出的。Dijkstra算法适用于处理带有非负权重的图。迪杰斯特拉算法主要特点是从起始点开始,采用贪心算法,每次遍历到始点距离最近且未访问过的顶点的邻接节点,直到扩展到终点为止。适用的是单源路径最短路问题,对于多...
- 树状数组(Binary Indexed Tree,简称BIT或Fenwick Tree)是一种用于高效处理数据序列的算法数据结构。它能够支持两个主要操作:单点更新和区间求和,这两个操作的时间复杂度都能达到O(log n),其中 n 是数据序列的长度。树状数组非常适合处理那些需要频繁更新和查询区间和的问题。基本原理树状数组的核心思想是将数据序列映射到一棵二叉树中,这棵树并不是普通的二叉树,而是... 树状数组(Binary Indexed Tree,简称BIT或Fenwick Tree)是一种用于高效处理数据序列的算法数据结构。它能够支持两个主要操作:单点更新和区间求和,这两个操作的时间复杂度都能达到O(log n),其中 n 是数据序列的长度。树状数组非常适合处理那些需要频繁更新和查询区间和的问题。基本原理树状数组的核心思想是将数据序列映射到一棵二叉树中,这棵树并不是普通的二叉树,而是...
- 差分算法是一种在计算机科学中常用的算法,特别是在处理序列数据时,它可以帮助我们快速计算出序列中相邻元素的差值。时间复杂度可以达到O(1),在C++中实现差分算法不仅可以提高程序的效率,还可以简化代码的复杂度。本文将详细介绍差分算法的原理、C++实现方法以及算法例题。 算法原理上一篇博客一篇带你速通前缀和算法(C/C++)我们介绍了前缀和算法,这一篇文章就与前缀和算法相反为差分算法。一维差分:... 差分算法是一种在计算机科学中常用的算法,特别是在处理序列数据时,它可以帮助我们快速计算出序列中相邻元素的差值。时间复杂度可以达到O(1),在C++中实现差分算法不仅可以提高程序的效率,还可以简化代码的复杂度。本文将详细介绍差分算法的原理、C++实现方法以及算法例题。 算法原理上一篇博客一篇带你速通前缀和算法(C/C++)我们介绍了前缀和算法,这一篇文章就与前缀和算法相反为差分算法。一维差分:...
- 引言前缀和是一种常见的算法计算技巧,通常用于处理数组或序列的连续子区间求和问题。它可以帮助我们在 O(1) 的时间内计算出指定子区间的和,而不需要每次都遍历整个子区间。前缀和一般用于预处理当中,具有高效率的特点。算法思想:一维前缀和:前缀和由名字可知,前面的数相加为和,前缀和是算法最基础的,也是非常好理解的,其实与数学符号Σ(求和符号)的意思是一模一样的。下面举一个例子我们有原数组a=[3,... 引言前缀和是一种常见的算法计算技巧,通常用于处理数组或序列的连续子区间求和问题。它可以帮助我们在 O(1) 的时间内计算出指定子区间的和,而不需要每次都遍历整个子区间。前缀和一般用于预处理当中,具有高效率的特点。算法思想:一维前缀和:前缀和由名字可知,前面的数相加为和,前缀和是算法最基础的,也是非常好理解的,其实与数学符号Σ(求和符号)的意思是一模一样的。下面举一个例子我们有原数组a=[3,...
- GCD、LCM是算法当中的基础之基础,分别对应最大公约数、最小公倍数,在算法竞赛中涉及到的概率也是比较高的,GCD、LCM在小学时就涉及到了求法,本篇将给大家详解GCD、LCM这两个函数,并且提供最简单的模板,在考察时,直接背上即可。最大公约数(GCD)也称为最大公因数或最大公因子,是指两个或多个整数共有的约数中最大的一个。在数学中,这是指能够同时被这些整数整除的最大的正整数。例如,8与12... GCD、LCM是算法当中的基础之基础,分别对应最大公约数、最小公倍数,在算法竞赛中涉及到的概率也是比较高的,GCD、LCM在小学时就涉及到了求法,本篇将给大家详解GCD、LCM这两个函数,并且提供最简单的模板,在考察时,直接背上即可。最大公约数(GCD)也称为最大公因数或最大公因子,是指两个或多个整数共有的约数中最大的一个。在数学中,这是指能够同时被这些整数整除的最大的正整数。例如,8与12...
- 最长公共子序列(LCS,Longest Common Subsequence)问题简称(LCS),是动态规划里面里面的基础算法。它的所解决的问题是,在两个序列中找到一个序列,使得它既是第一个序列的子序列,也是第二个序列的子序列,并且该序列长度最长。由下图中两个序列,我们可以看出来最长公共子序列为[s c r g]。我们来举个“栗子”,比如序列A为“abcdef”,序列B为“bcef”,那么它... 最长公共子序列(LCS,Longest Common Subsequence)问题简称(LCS),是动态规划里面里面的基础算法。它的所解决的问题是,在两个序列中找到一个序列,使得它既是第一个序列的子序列,也是第二个序列的子序列,并且该序列长度最长。由下图中两个序列,我们可以看出来最长公共子序列为[s c r g]。我们来举个“栗子”,比如序列A为“abcdef”,序列B为“bcef”,那么它...
- 引言&协议概述中国联合网络通信有限公司短消息网关系统接口协议(SGIP)是中国网通为实现短信业务而制定的一种通信协议,全称叫做Short Message Gateway Interface Protocol,用于在短消息网关(SMG)和服务提供商(SP)之间、短消息网关(SMG)和短消息网关(SMG)之间通信。Perl的IO::Async模块提供了一套简洁的异步IO编程模型。SGIP 协议... 引言&协议概述中国联合网络通信有限公司短消息网关系统接口协议(SGIP)是中国网通为实现短信业务而制定的一种通信协议,全称叫做Short Message Gateway Interface Protocol,用于在短消息网关(SMG)和服务提供商(SP)之间、短消息网关(SMG)和短消息网关(SMG)之间通信。Perl的IO::Async模块提供了一套简洁的异步IO编程模型。SGIP 协议...
- 5个短视频,带你走进华为云CodeArts IDE for C/C++~ 5个短视频,带你走进华为云CodeArts IDE for C/C++~
- 华为云CodeArts IDE for C/C++正式上线,欢迎体验 华为云CodeArts IDE for C/C++正式上线,欢迎体验
- 模式就是解决问题的固定套路,设计模式(Design pattern)就是一套经过前人反复使用,总结出来的程序设计经验。设计模式总共分为三大类:第一类是创建型模式 、第二类是结构型模式、第三种是行为型模式,共计23种标准设计模式。本文将通过5万字、23个经典小案例带你吃透23种设计模式。 模式就是解决问题的固定套路,设计模式(Design pattern)就是一套经过前人反复使用,总结出来的程序设计经验。设计模式总共分为三大类:第一类是创建型模式 、第二类是结构型模式、第三种是行为型模式,共计23种标准设计模式。本文将通过5万字、23个经典小案例带你吃透23种设计模式。
- 状态机[1]是程序设计中常用的一种处理方法。以格式文本解析使用的状态机为例,一个最简单的,用于解析源代码中的字符串的状态机如下:该状态机首先接收一个双引号,作为字符串的开始,然后持续接收字符,之后再遇到一个双引号时认为字符串结束。代码中实现状态机的方法有很多种,比如C语言常使用状态转换表,它是一个二维表,类似这样:Fsm fsm[] = { {ExpectStart, Quote, I... 状态机[1]是程序设计中常用的一种处理方法。以格式文本解析使用的状态机为例,一个最简单的,用于解析源代码中的字符串的状态机如下:该状态机首先接收一个双引号,作为字符串的开始,然后持续接收字符,之后再遇到一个双引号时认为字符串结束。代码中实现状态机的方法有很多种,比如C语言常使用状态转换表,它是一个二维表,类似这样:Fsm fsm[] = { {ExpectStart, Quote, I...
- 因为疫情的原因,C++技术大会时隔一年半之后才得以再次举办。这是我第3次参加该会议了,在前两次会议中,我发现国外专家的主题演讲大概率会有更高的质量,所以这一次我干脆全部听的国外专家演讲。主办方也很贴心,直接把所有的英文演讲全部排在了C会场。下面介绍我这次会议听的主题:《现代C++的发展与演化》——Bjarne StroustrupC++之父的演讲照例排在第一个。但实际上Bjarne每年讲的几... 因为疫情的原因,C++技术大会时隔一年半之后才得以再次举办。这是我第3次参加该会议了,在前两次会议中,我发现国外专家的主题演讲大概率会有更高的质量,所以这一次我干脆全部听的国外专家演讲。主办方也很贴心,直接把所有的英文演讲全部排在了C会场。下面介绍我这次会议听的主题:《现代C++的发展与演化》——Bjarne StroustrupC++之父的演讲照例排在第一个。但实际上Bjarne每年讲的几...
- 在c/c++开发过程中,经常出现内存异常使用的问题,比如踩内存,被踩的内存如果未被使用对外无影响。而一旦使用了被踩的内存,可能会出现进程core,死循环,进入异常分支等等各种千奇百怪的问题。这个时候要去定位这段内存为什么被踩,相当困难,因为已经错过了案发现场。有没有能在踩内存的第一现场就把凶手抓住,而不是在破坏已经表现出来的时候再去分析定位的方法呢?asan 就能达到这个目的 在c/c++开发过程中,经常出现内存异常使用的问题,比如踩内存,被踩的内存如果未被使用对外无影响。而一旦使用了被踩的内存,可能会出现进程core,死循环,进入异常分支等等各种千奇百怪的问题。这个时候要去定位这段内存为什么被踩,相当困难,因为已经错过了案发现场。有没有能在踩内存的第一现场就把凶手抓住,而不是在破坏已经表现出来的时候再去分析定位的方法呢?asan 就能达到这个目的
- 本次介绍到的AscendCL接口系列旨在了解AscendCL提供的多种特性,其中每种特性都包含了若干个可调用的接口。 本次介绍到的AscendCL接口系列旨在了解AscendCL提供的多种特性,其中每种特性都包含了若干个可调用的接口。
上滑加载中
推荐直播
-
手把手教你玩转鸿蒙短视频应用案例
2024/12/09 周一 16:00-18:00
Cindy 华为云学堂技术讲师
本期直播带你了解鸿蒙应用的基础组件和容器组件,通过短视频应用案例进行UI界面的搭建,熟悉组件的核心属性和事件,助力开发者高效开发!
去报名 -
基于华为云AI的在线实验教学
2024/12/10 周二 16:00-18:00
Alex 华为云学堂技术讲师
如何部署ModelArts中开源大模型来完成智能问答任务,及如何调用华为云EI-自然语言处理服务的API接口呢?本期直播中,我们将手把手带领大家一步步进行实验操作,深入体验基于华为云AI的实验过程。
去报名 -
华为云MetaStudio数字人,助力行业数字化业务创新
2024/12/11 周三 16:30-18:00
Paul 华为云媒体DTSE技术布道师
数字人是什么?如何让数字人更真实,更自然?数字人能否拥有多种语音?数字人接上了大脑会带来什么样的影响?数字人+究竟有什么样的新玩法?数字人将会带来什么样的产业变革?华为云在数字人领域深耕多年,本次直播为您揭露数字人的面纱。
去报名
热门标签