886. 可能的二分法

886. 可能的二分法

  • 原题链接:
  • 完成情况:
  • 题解一:
  • 题解二:

原题链接:

886. 可能的二分法
https://leetcode.cn/problems/possible-bipartition/description/

完成情况:

在这里插入图片描述

题解一:

package LeetCode中等题;import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.List;
import java.util.Queue;public class __886可能的二分法__广度优先搜索 {/*** @param n* @param dislikes* @return*/public boolean possibleBipartition(int n, int[][] dislikes) {int color [] = new int[n+1];List<Integer> [] g_dyeing = new List[n+1];for (int i=0;i<=n;i++){g_dyeing[i] = new ArrayList<Integer>();}for (int p[] :dislikes){g_dyeing[p[0]].add(p[1]);g_dyeing[p[1]].add(p[0]);}for (int i=1;i<=n;i++){if (color[i] == 0){Queue<Integer> queue = new ArrayDeque<Integer>();queue.offer(i);color[i] = 1;while (!queue.isEmpty()){int t = queue.poll();for (int next:g_dyeing[t]){if (color[next] > 0 && color[next] == color[t]){return false;}if (color[next] == 0){color[next] = 3^color[t];queue.offer(next);}}}}}return true;}
}

题解二:

package LeetCode中等题;import java.util.ArrayList;
import java.util.List;public class __886可能的二分法__深度优先搜索__图的染色法 {/**输入:n = 4, dislikes = [[1,2],[1,3],[2,4]]n代表n个人,dislike中数组表示指定两个不能配在一起。问::能否找到满足条件的情况?* @param n* @param dislikes* @return*/public boolean possibleBipartition(int n, int[][] dislikes) {int color [] = new int[n+1];List<Integer> [] g_dyeing = new List[n+1];for (int i=0;i<=n;i++){g_dyeing[i] = new ArrayList<Integer>();}for (int p[] :dislikes){g_dyeing[p[0]].add(p[1]);g_dyeing[p[1]].add(p[0]);}for (int i=1;i<=n;i++){if (color[i] == 0 && !dfs_possibleBipartition(i,1,color,g_dyeing)){return false;}}return true;}/**** @param curNode* @param nowColor* @param color* @param g_dyeing* @return*/private boolean dfs_possibleBipartition(int curNode, int nowColor, int[] color, List<Integer>[] g_dyeing) {color[curNode] = nowColor;for (int nextNode : g_dyeing[curNode]){if (color[nextNode] != 0 && color[nextNode] == color[curNode]){return false;}if (color[nextNode] == 0 && !dfs_possibleBipartition(nextNode,3^nowColor,color,g_dyeing)){return false;}}return true;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/99365.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高基数类别特征预处理:平均数编码 | 京东云技术团队

一 前言 对于一个类别特征&#xff0c;如果这个特征的取值非常多&#xff0c;则称它为高基数&#xff08;high-cardinality&#xff09;类别特征。在深度学习场景中&#xff0c;对于类别特征我们一般采用Embedding的方式&#xff0c;通过预训练或直接训练的方式将类别特征值编…

【ES】笔记-Set集合实践

JS <script>let arr[1,2,3,4,5,4,3,2,1];//1.数组去重let result0[...new Set(arr)];console.log(数组去重${result0});//2.交集let arr2[4,5,6,5,6];let result[...new Set(arr)].filter(item>{let s2new Set(arr2);//4 5 6if(s2.has(item)){return true;}else{retur…

Direct3D绘制旋转立方体例程

初始化文件见Direct3D的初始化_direct3dcreate9_寂寂寂寂寂蝶丶的博客-CSDN博客 D3DPractice.cpp #include <windows.h> #include "d3dUtility.h" #include <d3dx9math.h>IDirect3DDevice9* Device NULL; IDirect3DVertexBuffer9* VB NULL; IDirect3…

基于Linux并结合socket网络编程的ftp服务器的实现

项目需求 客户端能够通过调用“get”指令&#xff0c;来获取服务器的文件客户端能通过“server_ls”指令&#xff0c;来获取服务器路径下的文件列表客户端能通过“server_cd”指令&#xff0c;进入服务器路径下的某文件夹客户端可以通过“upload”指令&#xff0c;上传自己的本…

从0到1实现播放控制器

这系列文章主要讲诉如何从0到1使用QT实现带时间显示、滚动字幕等的自定义配置视频播放控制器。平时我们乘坐地铁经常看到各条线的播放控制器都大同小异。其实都是通过QT等界面开发软件来实现的。 在具体开发之前&#xff0c;需要明确我们需要做什么&#xff1f; 1. 开发一个可…

uni-app开发小程序,radio单选按钮,点击可以选中,再次点击可以取消

一、实现效果&#xff1a; 二、代码实现&#xff1a; 不适用官方的change方法&#xff0c;自己定义点击方法。 动态判断定义的值是否等于遍历的值进行回显&#xff0c;如果和上一次点击的值一样&#xff0c;就把定义的值改为null <template><view><radio-group&…

【广州华锐互动】利用AR远程指导系统进行机械故障排查,实现远程虚拟信息互动

随着工业自动化和智能化的不断发展&#xff0c;机械故障诊断已经成为了工业生产中的重要环节。为了提高故障诊断的准确性和效率&#xff0c;近年来&#xff0c;AR&#xff08;增强现实&#xff09;远程协助技术逐渐应用于机械故障诊断领域。本文将探讨AR远程协助技术在机械故障…

docker打包vue vite前端项目

打包vue vite 前端项目 1.打包时将测试删除 2.修改配置 3.打包项目 npm run build 显示成功&#xff08;黄的也不知道是啥&#xff09; 打包好的前端文件放入 4.配置 default.conf upstream wms-app {server 你自己的ip加端口 ;server 192.168.xx.xx:8080 ; } server { …

mysql数据库使用技巧整理

查看当前数据库已建立的client连接 mysql中执行 -- 查看数据库允许的最大连接数&#xff0c;不是实时正在使用的连接数 SHOW VARIABLES LIKE max_connections; mysql中执行 -- 查看当前数据库client的连接数 SHOW STATUS LIKE Threads_connected; mysql中执行 -- 查看具…

Linux中安装MySQL5.7.42

1. 首先&#xff0c;下载mysql5.7.42的安装包&#xff08;下方是下载地址&#xff09;&#xff0c;选择红色框框的下载&#xff08;注意的是&#xff0c;这个链接只提供5.7的版本下载&#xff0c;可能还会更新&#xff0c;不一定打开就是5.7.42的版本&#xff0c;后续可能会有4…

LeetCode 热题 100——找到字符串中所有字母异位词(滑动窗口)

题目链接 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题目解析 该题目的意思简而言之就是说&#xff0c;从s字符串中寻找与p字符串含有相同字符(次数和种类均相同)的子串&#xff0c;并且将他们的首字符下标集合进数组中进行返回。 滑动窗口解…

AndroidTV端:酒店扫码认证投屏DLNA

被老板叼了几次了&#xff0c;最近实在忍不了&#xff0c;准备离职&#xff1b; 但是担心离职后长时间没有办法找到工作 就想贡献一套平时琢磨出来的程序&#xff0c;请各位有能力的话带我熬过这凛冽的寒冬。 目前写出来的&#xff0c;有三个端&#xff1a;安卓TV端&#xf…