当前位置: 首页 > article >正文

leetcode_LCP 07

LCP 07. 传递信息 - 力扣(LeetCode)

运用了广度优先搜索

先建立一个二维矩阵 将二维矩阵初始化为0 若两条边之间有指向关系 将二维矩阵设为1 dfs递归终止条件为已经k == 0 (已经消耗完了所需的步数) && u == N - 1 (是否到达指定位置)

每次调用dfs k - 1 代表这一步存在 走了这一步

int N;//  代表人数
int matrix[10][10];

int dfs( int u, int k ){  //u代表起始位置
    if (k == 0){  //递归终止条件
        return u == N - 1 ? 1 : 0;
    }
    int sum = 0;
    for ( int i = 0; i < N; ++i){
        if (matrix[u][i]){  //存在边
            sum += dfs( i, k - 1 );  //从新的边出发 走了一步 k - 1;
        }
    }
    return sum;
}

class Solution {
public:
    int numWays(int n, vector<vector<int>>& relation, int k) {
        N = n;
        memset( matrix, 0, sizeof(matrix) );  //初始化数组数据为0
        for (int i = 0; i < relation.size(); ++i){  //添加边
            int a = relation[i][0];
            int b = relation[i][1];
            matrix[a][b] = 1;  //存在边
        }
        return dfs( 0, k );
    }
};


http://www.kler.cn/a/430124.html

相关文章:

  • 预训练语言模型——BERT
  • with as提高sql的执行效率
  • 快速实现一个快递物流管理系统:实时更新与状态追踪
  • Typescript使用指南
  • hive数据迁移
  • 贪心算法(五)
  • 现代C++ 21 any
  • 《筑牢网络安全防线:守护数字时代的生命线》
  • 阿里云ack部署rabbitmq集群
  • 网络原理之 TCP 协议
  • 启动hbase后没有hmaster进程
  • 二一(GIT4)、echarts(地图)、黑马就业数据平台(学生页-增 删 改)
  • 【论文阅读】Fifty Years of the ISCA: A Data-Driven Retrospective
  • 什么是厄尔米特(Hermitian)矩阵?
  • PHP:将数据传递给Grid++Report模板进行打印
  • 棋牌项目Go的日志打印问题
  • workflow笔记
  • WebSocket 经验与最佳实践
  • 《跨越平台壁垒:C++ 人工智能模型在移动设备的部署之路》
  • java+ssm+mysql校园物品租赁网
  • C#请求https提示未能为 SSL/TLS 安全通道建立信任关系
  • XREAL在日本AR市场成功的策略分析
  • Mysql | 尚硅谷 | 第02章_MySQL环境搭建
  • linux 安装 vsftpd 服务以及配置全攻略,vsftpd 虚拟多用户多目录配置,为每个用户配置不同的使用权限
  • 【前端】深度解析 JavaScript 中的 new 关键字与构造函数
  • 【ETCD】【源码阅读】configurePeerListeners() 函数解析