MG:邻接矩阵
ALG:邻接表
任务:一、图的创建与转换1.采用邻接矩阵表示法创建无向图(c)
通过文件输入:
1234567895 7ABCDEABADBCBECDCEDE
输出:
12345678Create adjacency matrix from the read fileprint adjacency matrix : A B C D EA 0 1 0 1 0B 1 0 1 0 1C 0 1 0 1 1D 1 0 1 0 1E 0 1 1 1 0
创建邻接矩阵代码
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091#include <iostream>#include <fs ...
17. 电话号码的字母组合——letter-combinations-of-a-phone-number给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
示例 1:
12输入:digits = "23"输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]
示例 2:
12输入:digits = "2"输出:["a","b","c"]
提示:
1 <= digits.length <= 4
digits[i] 是范围 ['2', '9'] 的一个数字。
方法一:回溯首先使用哈希表存储每个数字对应的 ...
15. 三数之和——3sum给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请你返回所有和为 0 且不重复的三元组。
**注意:**答案中不可以包含重复的三元组。
示例 1:
12345678输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]解释:nums[0] + nums[1] + nums[2] = (-1) + 0 + 1 = 0 。nums[1] + nums[2] + nums[4] = 0 + 1 + (-1) = 0 。nums[0] + nums[3] + nums[4] = (-1) + 2 + (-1) = 0 。不同的三元组是 [-1,0,1] 和 [-1,-1,2] 。注意,输出的顺序和三元组的顺序并不重要。
示例 2:
123输入:nums = [0,1,1]输出:[]解释:唯一可能的三元组和不为 0 。
示例 3:
...
一、确认是否需要手动启动Python脚本检查项目结构,确认是否需要手动启动 Python 脚本,以及 /api/training/start 端点是否会自动启动。
查看 TrainingTaskService 的完整实现,确认 Python 脚本的启动方式:
不需要手动启动 Python 脚本。调用 curl -X POST http://localhost:8080/api/training/start 即可自动启动所有训练脚本。
工作原理
调用 /api/training/start 后,TrainingController 会触发训练任务。
TrainingTaskService 会异步执行,按顺序自动运行以下 Python 脚本:
步骤 1:训练进口数量模型 (Trade_Transformer_LSTM_quantity.py)
步骤 2:训练进口单价模型 (Trade_Transformer_LSTM_price.py)
步骤 3:训练出口数量模型 (Trade_Transformer_LSTM_qua ...
11. 盛最多水的容器——container-with-most-water给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。
找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
返回容器可以储存的最大水量。
**说明:**你不能倾斜容器。
示例 1:
123输入:[1,8,6,2,5,4,8,3,7]输出:49 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。
示例 2:
12输入:height = [1,1]输出:1
提示:
n == height.length
2 <= n <= 105
0 <= height[i] <= 104
方法一:双指针说明
本题是一道经典的面试题,最优的做法是使用「双指针」。如果读者第一次看到这题,不一定能想出双指针的做法。
分析
我们先从题目中的示例开始,一步一步地解释双指针算法的过程。稍后再给出算法正确性的证明。
题目中的示 ...
5. 最长回文子串——longest-palindromic-substring给你一个字符串 s,找到 s 中最长的 回文 子串。
示例 1:
123输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。
示例 2:
12输入:s = "cbbd"输出:"bb"
提示:
1 <= s.length <= 1000
s 仅由数字和英文字母组成
要解决这个问题,我们需要找到字符串中最长的回文子串。回文子串是指从左到右和从右到左读都相同的连续字符序列。
解题思路中心扩展法是解决最长回文子串问题的高效方法,其核心思路是:
回文子串有两种形式:长度为奇数(如 “aba”)和长度为偶数(如 “abba”)
对于每个字符,我们将其视为奇数长度回文的中心,向两边扩展检查
对于每对相邻字符,我们将其视为偶数长度回文的中心,向两边扩展检查
记录扩展过程中找到的最长回文子串
这种方法的时间复杂度为 O (n²),空间复杂度为 O (1),适合处理长度不 ...
3. 无重复字符的最长子串——longest-substring-without-repeating-characters给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。
示例 1:
123输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。注意 "bca" 和 "cab" 也是正确答案。
示例 2:
123输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
示例 3:
1234输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
提示:
0 <= s.length <= 5 * 104
s 由英文字母、数字、符号 ...
1-6 实现基于邻接矩阵表示的深度优先遍历分数 4
作者 王东
单位 贵州师范学院
实现基于邻接矩阵表示的深度优先遍历。
函数接口定义:1void DFS(Graph G, int v);
其中 G 是基于邻接矩阵存储表示的无向图,v表示遍历起点。。
裁判测试程序样例:123456789101112131415161718192021222324252627#include <stdio.h>#include <stdlib.h>#define MVNum 10 int visited[MVNum];typedef struct{ char vexs[MVNum]; int arcs[MVNum][MVNum]; int vexnum,arcnum; }Graph; void CreateUDN(Graph &G);//实现细节隐藏void DFS(Graph G, int v);void DFSTra ...
1-5 实现基于邻接表表示的深度优先遍历分数 4
作者 王东
单位 贵州师范学院
实现基于邻接表表示的深度优先遍历。
函数接口定义:1void DFS(ALGraph G, int v);
其中 G 是基于邻接表存储表示的无向图,v表示遍历起点。
裁判测试程序样例:12345678910111213141516171819202122232425262728293031323334353637383940#include <stdio.h>#include <stdlib.h>#define MVNum 10int visited[MVNum]; typedef struct ArcNode{ int adjvex; struct ArcNode *nextarc; int info; }ArcNode; typedef struct VNode{ char data; ArcNode *firstarc;}VNode, AdjList[MVNum];typedef struct{ ...
1-4 基于邻接表表示的广度优先遍历分数 4
作者 王东
单位 贵州师范学院
实现基于邻接表表示的广度优先遍历。
函数接口定义:1void BFS(ALGraph G, int v);
其中 G 是基于邻接表存储表示的无向图,v表示遍历起点。
裁判测试程序样例:1234567891011121314151617181920212223242526272829303132333435363738394041#include <stdio.h>#include <stdlib.h>#define MVNum 10#define MAXQSIZE 100bool visited[MVNum]; typedef struct ArcNode{ int adjvex; struct ArcNode *nextarc; int info; }ArcNode; typedef struct VNode{ char data; ArcNode *firstarc;}VNode, AdjList[MVNum ...


