没能做出来,参考别人的: 1 from heapq import heapify, heappush, heappop 2 3 class Solution: 4 def findItinerary(self, tickets: List[List[str]]) -> List[str]: 5 gr ...
分类:
其他好文 时间:
2020-04-08 20:41:03
阅读次数:
62
解题思路: 1、先按第一跳距离升序 2、合法第一跳加入队列中 3、(广度优先)访问队列中的结点,每访问一个结点并将其可到达的子孙加入队列中,直至访问至某个结点可以到岸结束 #include <stdio.h> #include <string.h> #include <math.h> #define ...
分类:
其他好文 时间:
2020-04-05 11:43:29
阅读次数:
97
给定一个整数矩阵,找出最长递增路径的长度。 对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。 示例 1: 输入: nums = [ [9,9,4], [6,6,8], [2,1,1]] 输出: 4 解释: 最长递增路径为 [1, 2, 6 ...
分类:
编程语言 时间:
2020-04-04 11:47:34
阅读次数:
96
一、广搜的特性(队列状态之特性) 当使用BFS遍历一张无权图,每次从队列中取出队首进行一系列扩展,将扩展成功结点放入队尾中; 这样的操作会使得整队列满足“两段性”,即对于这张搜索树中队列只会保留两层的结点; 证明: 1. 第p层结点扩展时只会扩展第p+1层结点,不会越级扩展p+k层结点(p = 1& ...
分类:
其他好文 时间:
2020-04-04 00:06:00
阅读次数:
69
用vector实现邻接表 vector <int> G[100]; //表示有100个顶点的图的邻接表 G[u].push_back(v); //从顶点u 向顶点v 画边,即在相当于创建一个二维数组G[100][i] //搜索与顶点u 相邻的顶点v for( int i = 0; i < G[u]. ...
分类:
其他好文 时间:
2020-04-02 22:44:38
阅读次数:
93
#include <cassert> #include <vector> template<typename Graph> class ShortestPath { private: Graph &G; int s; //某一个点 bool* visited; int* from;//路径 int ...
分类:
编程语言 时间:
2020-04-02 22:20:35
阅读次数:
128
#include <cassert> #include <vector> template<typename Graph> class Path { private: Graph &G; int s; //某一个点 bool* visited; int* from;//路径 void dfs(int ...
分类:
编程语言 时间:
2020-04-02 22:17:49
阅读次数:
78
dfs:深度优先搜索(深搜) 思路是把一种可能性走到底,在回头到上一个路口,走另一种可能性。 数独游戏:有一个9个3*3的小格子,拼成了一个9*9的矩阵,预输入1~9这种数字到某个格子上,其余格子是0。我们要做的就是把没有数字的格子上添上数字,使得这个9*9的矩阵每一行每一列的数字都是1~9不重复, ...
分类:
其他好文 时间:
2020-03-31 14:39:29
阅读次数:
56
深度优先搜索 地图的形式 【题目】类似一张宫格图,即迷宫,小明在迷宫中迷路了,好朋友苏格去寻找他,请你找出一条最短路径的步数。其中有障碍物,不能走。 输入要求:输入代表可以走,输入1代表障碍物; 输出要求:只输出最短步数 输入样例: 5 4 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 ...
分类:
其他好文 时间:
2020-03-30 16:16:14
阅读次数:
64
【最短路径】之 "Bellman Ford算法" 最短路径 问题是 "图论" 研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。算法具体的形式包括: 确定起点的最短路径问题 即已知起始结点,求最短路径的问题。适合使用 "Dijkstra算法" 。 确定终点的最短路径问 ...
分类:
编程语言 时间:
2020-03-30 12:36:53
阅读次数:
88