- 博客(3)
- 收藏
- 关注
原创 单源最短路径问题的贪心解法——Dijkstra算法(C++)
/ 边权从1开始(避免0与无边混淆)// 随机数生成器(优化:避免rd()在部分编译器失效)= j && gen() % 3 == 0) { // 30%概率有边。// 随机生成带权有向图(邻接矩阵):0表示自身,INT_MAX表示无边,其他为边权。cout << "=== 生成的带权有向图(邻接矩阵)===\n";cout << "=== Dijkstra算法结果 ===\n";// 顶点数(可修改)// 迭代n-1次(最多确定n-1个顶点的最短路径)// 找到当前未访问的距离最小的顶点u。
2025-11-26 22:28:26
436
原创 旋转图像(C++)
比如输入 [[1,2,3],[4,5,6],[7,8,9]] ,输出需为 [[7,4,1],[8,5,2],[9,6,3]]。- 翻转后得到: [[7,4,1],[8,5,2],[9,6,3]] ,即顺时针旋转90度的结果。- 水平翻转后: [[7,8,9],[4,5,6],[1,2,3]] (第0行与第2行交换)。1. 水平翻转:将矩阵沿水平中线上下翻转(第i行与第n-1-i行交换);- 初始矩阵: [[1,2,3],[4,5,6],[7,8,9]];// 步骤1:水平翻转。步骤2:主对角线翻转。
2025-11-20 19:39:04
163
原创 排列序列(c++)
初始 k=8 (减1后), fact[3]=6 , idx=8/6=1 →选 nums[1]=2 , nums 变为 [1,3,4] , k=8%6=2;- 下一轮 fact[2]=2 , idx=2/2=1 →选 nums[1]=3 , nums 变为 [1,4] , k=2%2=0;比如 n=3 时,全排列是 ["123","132","213","231","312","321"] , k=3 对应“213”。// 当前位的数字索引。- 因此,第 k 个排列的第1位,可通过 k/(n-1)!
2025-11-20 19:28:02
329
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅