首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图度作为无向图绘制的解

图度作为无向图绘制的解
EN

Code Review用户
提问于 2019-12-26 13:33:40
回答 1查看 75关注 0票数 0

问题是:

给定一个表示为邻接矩阵和整数k的无向图,编写一个函数来确定该图中的每个顶点是否可以着色,使得两个相邻的顶点都不能使用最多k个颜色共享相同的颜色。来源:https://www.dailycodingproblem.com/

所提出的解决方案使用回溯算法(https://www.dailycodingproblem.com/blog/graph-coloring),但我想知道仅仅计算顶点度是否足够(来源:https://youtu.be/LUDNz2bIjWI?t=169)。

代码语言:javascript
复制
    boolean canBeColored(int[][] adjacencyMatrix, int colors) {

    for (int row = 0; row < adjacencyMatrix.length; row++) {
        int degree = 0;
        for (int column = 0; column < adjacencyMatrix[row].length; column++) {
            if (adjacencyMatrix[row][column] == 1) {
                degree++;
            }
        }

        if (degree > colors) {
            return false;
        }
    }

    return true;
}
EN

回答 1

Code Review用户

回答已采纳

发布于 2019-12-27 15:25:39

事实并非如此。考虑一个三角形图,它有树节点和三个边。所有顶点都有二级,但需要三种颜色才能对其着色。对于该输入,您的功能将失败。

事实上,这个问题是NP-完全的,这意味着它不知道是否可以构造一个有效的算法来解决它。因此,如果你能做到这一点,你将赢得声誉和财富,也是一个非常大的奖金。

票数 1
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/234668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档