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

LeetCode:886. 可能的二分法

class Solution {

private:

    bool ok = true;

    vector<bool> color;

    vector<bool> visited;

public:

    bool possibleBipartition(int n, vector<vector<int>>& dislikes) {

        // 图节点编号从 1 开始

        color.resize(n + 1);

        visited.resize(n + 1);

        // 转化成邻接表表示图结构

        vector<vector<int>> graph = buildGraph(n, dislikes);

        for (int v = 1; v <= n; v++) {

            if (!visited[v]) {

                traverse(graph, v);

            }

        }

        return ok;

    }

private:

        // 建立图函数

    vector<vector<int>> buildGraph(int n, vector<vector<int>>& dislikes) {

        // 图节点编号为 1...n

        vector<vector<int>> graph(n + 1);

        for (const auto& edge : dislikes) {

            int v = edge[1];

            int w = edge[0];

           

            graph[v].push_back(w);

           

            graph[w].push_back(v);

        }

        return graph;

    }

    void traverse(const vector<vector<int>>& graph, int v) {

        if (!ok) return;

        visited[v] = true;

        for (int w : graph[v]) {

            if (!visited[w]) {

                color[w] = !color[v];

                traverse(graph, w);

            } else {

                if (color[w] == color[v]) {

                    ok = false;

                }

            }

        }

    }

};

http://www.dtcms.com/a/503419.html

相关文章:

  • 【Linux】应用层协议http
  • cms网站后台上传图片提示图片类型错误但是类型是正确的服装网站建设效果
  • C程序中的数组与指针共生关系
  • 网站的建立步骤网站ip地址大全
  • 每日Reddit AI信息汇总 10.19
  • k8s(九)安全机制
  • 中国建设银行陕西分行官方网站微网站建设使用程序
  • 福州网站优化手机网站设计案例
  • Orleans 序列化、Actor Placement 和 Actor 调用详细分析
  • Java Object类及包装类
  • 《算法通关指南---C++编程篇(4)》
  • VScode 入门(设置篇)
  • 【第十八周】机器学习笔记07
  • 机械行业做网站wordpress 唯艾迪
  • TVM | 基本概念
  • 建设网站免费模板下载中国旅游网站模板
  • UVa 1471 Defense Lines
  • 【题解】洛谷 P11673 [USACO25JAN] Median Heap G [树形 dp]
  • 气球游戏(DP,分治)
  • MySQL同步连接池与TrinityCore的对比学习(六)
  • UserWarning: No file found at “C:\Faces\image_0032.jpg“AssertionError
  • 网站生成器下载wordpress 添加微博关注
  • 【个人成长笔记】Qt Creator快捷键终极指南:从入门到精通
  • 【开题答辩过程】以《校园可共享物品租赁系统的设计与实现》为例,不会开题答辩的可以进来看看
  • 北京高端网站定制公司猎头公司工作怎么样
  • StarRocks-基本介绍(一)基本概念、特点、适用场景
  • Java零基础入门:从封装到构造方法 --- OOP(上)
  • JAVA算法练习题day43
  • 如何学习Lodash源码?
  • 建个自己的网站难吗宁波 seo整体优化