首页 > TAG信息列表 > 最短

正则表达式.*匹配最长的字符串,.*?匹配最短的字符串,.+?匹配最短的字符串,但至少要有一个字符

1. .* . 表示匹配除换行符 \n 之外的任何单字符,*表示零次或多次。所以.*在一起就表示任意字符出现零次或多次。没有?表示贪婪模式。比如a.*b,它将会匹配最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配。又比如模式src=`.*`, 它

YbtOJ 「图论」第3章 最短路径

例题1.单源最短路径 dij 板子。(w36557658 原版 dij 代码! code #include<cmath> #include<queue> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define fi first #define se second using namespace std; typedef l

【搜索】力扣934:最短的桥

在给定的二维二进制数组 A 中,存在两座岛。(岛是由四面相连的 1 形成的一个最大组。) 现在,我们可以将 0 变为 1,以使两座岛连接起来,变成一座岛。 返回必须翻转的 0 的最小数目。(可以保证答案至少是 1 。) 示例: 输入:A = [[1,1,1,1,1],[1,0,0,0,1],[1,0,1,0,1],[1,0,0,0,1],[1,1,1

最短路径算法之——Floyd算法介绍与实现

之前我们学习了图的最短路径算法之Dijkstra算法,知道此算法是用来求指定的两顶点间最短路径的(也称单源最短路径single-source),如果要求图中任意两顶点间的最短路径,怎么办呢? 当然可以通过对任意两点调用Dijkstra算法来实现。有没有更好的办法呢? 这里我们介绍下Floyd算法(Floyd–Warsha

题目37

一个工厂有m条流水线 来并行完成n个独立的作业 该工厂设置了一个调度系统 在安排作业时,总是优先执行处理时间最短的作业 现给定流水线个数m 需要完成的作业数n 每个作业的处理时间分别为 t1,t2...tn 请你编程计算处理完所有作

acwing349 黑暗城堡 (最短路径生成树)

求出最短树,用乘法原理统计答案就行了(模拟prim过程)。 不知道说什么了,直接上代码: 1 #include<cstring> 2 #include<iostream> 3 #include<algorithm> 4 #define ll long long 5 using namespace std; 6 const int N=1006; 7 const ll P=(1ll<<31)-1; 8 int n,m,a[N][N],d[N

最短路径问题

图论 最短路径问题 图给定若干点及连接两点的线构成的图形 在线作图软件https://csacademy.com/app/graph_editor/ Matlab也可作图 matlab作无向图 1、matlab作无向图 设置量个矩阵,矩阵中两个元素一一对应,然后用grap函数, 俩个一一对应的元素连接起来(注意;编号最后从1开始连续编号,

最短编辑距离

C++ 最短编辑距离 /* 给定两个字符串 A 和 B,现在要将 A 经过若干操作变为 B,可进行的操作有: 删除–将字符串 A 中的某个字符删除。 插入–在字符串 A 的某个位置插入某个字符。 替换–将字符串 A 中的某个字符替换为另一个字符。 现在请你求出,将 A

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

1.背景 2.代码 package com.ldp.algorithm.demo06Dijkstra; import java.util.Arrays; /** * @create 06/17 6:41 * @description <p> * 迪杰斯特拉算法-最短路径 * </p> */ public class Test01 { public static void main(String[] args) { char[] vertex

求迷宫最短通道

递归求解迷宫最短通道的总步长。输入一个迷宫,求从入口通向出口的可行路径中最短的路径长度。为简化问题,迷宫用二维数组int maze[10][10]来存储障碍物的分布,假设迷宫的横向和纵向尺寸的大小是一样的,并由程序运行读入, 若读入迷宫大小的值是n(3<n<=10),则该迷宫横向或纵向尺寸都是n,规定

最短路径算法

弗洛伊德 迪杰斯特拉 图G(V,E) V是点集,E是边集。 S 是已求出最短路径的顶点集合 U 是V-S。 未优化 初始时S只包含源点,即S={v},顶点v到自己的距离为0。U包含除v以外的其他顶点,v到U中顶点i的距离为其边上的权值(两点可达)或者为∞(两点不可达)。 从U中选取一个顶点u,顶点v到顶点u的

算法介绍:Dijkstra 算法

Dijkstra(狄克斯特拉-算法) 基于:「贪心」、「广度优先搜索」、「动态规划」 用法:求一个图中一个点到其他所有点的最短路径的算法 时间复杂度:O(n2)   栗子:            这里提供了n个算法: 1,暴力!  枚举拿一条路线最短,不过代码可能很长且时间复杂度为O(n^n),不tle就怪了 2,Floy

计算机网络4.6.3开放最短路径优先ospf的基本工作原理

581. 最短无序连续子数组(单调栈)

难度中等848收藏分享切换为英文接收动态反馈 给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。 请你找出符合题意的 最短 子数组,并输出它的长度。   示例 1: 输入:nums = [2,6,4,8,10,9,15] 输出:5 解释:

Leetcode 1092 最短公共超序列

    C: #include <stdlib.h> #include <stdio.h> #include <string.h> char *combine(char *base, char *str1, char *str2) { int len = strlen(base), len1 = strlen(str1), len2 = strlen(str2); int point1 = 0, point2 = 0, point = 0;

【刷题】P1613跑路

  //原本以为这题只需要floyd得到dis[1][n] //然后拆分出二进制中1的个数 (这里是不是有个函数可以用) //但是样例显示此题不是普通最短路,要求的是时间最短而不是路程最短 //那么在不改动的情况下,也许可以寻找环? #include<bits/stdc++.h> #define ll long long using namespace

最短Hamilton路径

code #include<algorithm> #include<cstring> #include<iostream> using namespace std; const int N=20,M=1<<N; int f[M][N],w[N][N]; int main(){ ios::sync_with_stdio(false); cin.tie(0); int n; cin>>n; for(int i=0;i<n;++i){

91. 最短Hamilton路径

题目链接 91. 最短Hamilton路径 给定一张 \(n\) 个点的带权无向图,点从 \(0∼n−1\) 标号,求起点 \(0\) 到终点 \(n−1\) 的最短 Hamilton 路径。 Hamilton 路径的定义是从 \(0\) 到 \(n−1\) 不重不漏地经过每个点恰好一次。 输入格式 第一行输入整数 \(n\)。 接下来 \(n\) 行每行

操作系统——调度算法

进程调度。 先来先服务、最短作业优先、高响应比、时间片轮转、最高优先级、多级反馈队列。   内存置换。 最佳页面置换、先进先出置换、最近最久未使用置换LRU、时钟页面置换、最不常用置换LFU。   磁盘调度。 先来先服务、最短寻道时间优先、扫描算法、循环扫描算法、LOOK和C-

最短路径

floyd 是一种动态规划算法,稠密图效果最佳,边权可正可负 他的原理在于用邻接矩阵存任意两点之间的最短路径,适用于多源最短路,点与点之间: 自己到自己——dis=0; 自己到别人——找一mid,随机二分,就一区间DP //k为中间点 for(k = 0; k < G.vexnum; k++) //v为起点 for(v = 0 ; v <

Dijkstra算法 最短路径

1 #include <bits/stdc++.h> 2 const int INF=99999; 3 using namespace std; 4 int n,m,u; 5 int dis[10000]; 6 int dist[10000][10000]; 7 int vis[10000]; 8 int main() 9 { 10 cin>>n>>m; 11 int a,b,c; 12 for(int i=1;i<=n;i++

Bellman-Ford算法 最短路径

1 #include <bits/stdc++.h> 2 const int INF=99999; 3 using namespace std; 4 5 int main() 6 { 7 int dis[105] , i , k , n , m , u[105] , v[105] , w[105]; 8 bool flag=false; 9 cin>>n>>m; 10 for(int i=1;i<=m;i+

【LeetCode-581】最短无序连续子数组

给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。 请你找出符合题意的 最短 子数组,并输出它的长度。 示例 1: 输入:nums = [2,6,4,8,10,9,15] 输出:5 解释:你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变

最短路径

一、最短路径算法   1.Dijkstra(迪杰特斯拉)也叫作单源最短路径算法   2.Floyd(弗洛伊德)是个多源最短路径算法 二、Dijkstra算法(采用贪心思想)   1.产生     当我们要计算两个确定的点之间的最小成本的时候,我们就能用到这个算法,比如说我们要从长沙去到北京,可以直达,也可以转

LeetCode简单题之最短补全词

题目 给你一个字符串 licensePlate 和一个字符串数组 words ,请你找出 words 中的 最短补全词 。 补全词 是一个包含 licensePlate 中所有字母的单词。忽略 licensePlate 中的 数字和空格 。不区分大小写。如果某个字母在 licensePlate 中出现不止一次,那么该字母在补全词中的