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

马云做黄页网站时候做图表网站

马云做黄页网站时候,做图表网站,网站建设推广信息,想建设个网站1042. 不邻接植花 难度中等198 有 n 个花园,按从 1 到 n 标记。另有数组 paths ,其中 paths[i] [xi, yi] 描述了花园 xi 到花园 yi 的双向路径。在每个花园中,你打算种下四种花之一。 另外,所有花园 最多 有 3 条路径可以进入…

1042. 不邻接植花

难度中等198

n 个花园,按从 1n 标记。另有数组 paths ,其中 paths[i] = [xi, yi] 描述了花园 xi 到花园 yi 的双向路径。在每个花园中,你打算种下四种花之一。

另外,所有花园 最多3 条路径可以进入或离开.

你需要为每个花园选择一种花,使得通过路径相连的任何两个花园中的花的种类互不相同。

以数组形式返回 任一 可行的方案作为答案 answer,其中 answer[i] 为在第 (i+1) 个花园中种植的花的种类。花的种类用 1、2、3、4 表示。保证存在答案。

示例 1:

输入:n = 3, paths = [[1,2],[2,3],[3,1]]
输出:[1,2,3]
解释:
花园 1 和 2 花的种类不同。
花园 2 和 3 花的种类不同。
花园 3 和 1 花的种类不同。
因此,[1,2,3] 是一个满足题意的答案。其他满足题意的答案有 [1,2,4]、[1,4,2] 和 [3,2,1]

示例 2:

输入:n = 4, paths = [[1,2],[3,4]]
输出:[1,2,1,2]

示例 3:

输入:n = 4, paths = [[1,2],[2,3],[3,4],[4,1],[1,3],[2,4]]
输出:[1,2,3,4]

提示:

  • 1 <= n <= 104
  • 0 <= paths.length <= 2 * 104
  • paths[i].length == 2
  • 1 <= xi, yi <= n
  • xi != yi
  • 每个花园 最多3 条路径可以进入或离开

哈希表实现(染色法)

题解:https://leetcode.cn/problems/flower-planting-with-no-adjacent/solution/liang-chong-xie-fa-ha-xi-biao-shu-zu-wei-7hm8/

四色定理(世界近代三大数学难题之一),又称四色猜想、四色问题,是世界三大数学猜想之一。

四色问题的内容是“任何一张地图只用四种颜色就能使具有共同边界的国家着上不同的颜色。”也就是说在不引起混淆的情况下一张地图只需四种颜色来标记就行。

用数学语言表示即“将平面任意地细分为不相重叠的区域,每一个区域总可以用1234这四个数字之一来标记而不会使相邻的两个区域得到相同的数字。”这里所指的相邻区域是指有一整段边界是公共的。如果两个区域只相遇于一点或有限多点就不叫相邻的。

  • 问题相当于用 4 种颜色给图中的每个节点染色,要求相邻节点颜色不同。而「所有花园最多有 3 条路径可以进入或离开」,这相当于图中每个点的度数至多为 3,那么只要选一个和邻居不同的颜色即可。
class Solution {public int[] gardenNoAdj(int n, int[][] paths) {List<Integer> g[] = new ArrayList[n];Arrays.setAll(g, e -> new ArrayList<>());for(int[] e : paths){int x = e[0]-1, y = e[1]-1; // 编号改为从0开始g[x].add(y);g[y].add(x);}int[] color = new int[n];for(int i = 0; i < n; i++){// 至多有4种颜色,每个节点至多3个路径// 因此只要选与邻居不同的颜色即可boolean[] used = new boolean[5];for(int j : g[i]){used[color[j]] = true;}while(used[++color[i]]); // 找到一个邻居没有用过的颜色// for color[i]++; used[color[i]]; color[i]++ {}}return color;}
}

位运算实现

class Solution {public int[] gardenNoAdj(int n, int[][] paths) {List<Integer> g[] = new ArrayList[n];Arrays.setAll(g, e -> new ArrayList<>());for(int[] e : paths){int x = e[0]-1, y = e[1]-1; // 编号改为从0开始g[x].add(y);g[y].add(x);}int[] color = new int[n];for(int i = 0; i < n; i++){int mask = 1; // 由于颜色是 1~4,把 0 加入 mask 保证下面不会算出 0for(int j : g[i]){mask |= 1 << color[j];}color[i] = Integer.numberOfTrailingZeros(~mask);// 一个数与它的相反数与运算-1可以得到末尾0的个数}return color;}
}
http://www.yayakq.cn/news/478327/

相关文章:

  • 可信网站申请网站建设制作优化
  • 南昌网站建设公司案例辽宁省建设部网站
  • 网站建设兼职招聘网站首页轮播图片
  • 纸业公司网站模板源文件关键词竞价广告
  • 网站开发界面设计用什么工具有哪些做特卖的网站有哪些
  • 设计网站建设合同书6北京软件公司
  • 网站做排行多少费用建行信用卡网站官网入口
  • 佛山网站建设公司-印象互动公司做网站的多吗
  • google帐户登录网站如何做的做网站生意
  • 国内优秀html网站云南网络推广公司排名
  • 浅析社区网站的建设杭州网站制作多少钱
  • php手机网站源码下载上海网页制作设计营销
  • 柯桥区交通投资建设集团网站郑州网站建设选智巢
  • dede电影网站模版小程序 appid
  • 广州佛山网站建设地址中国建筑集团有限公司有几个局
  • 网站下雪的效果怎么做的软文推广案例500字
  • 焦作做网站哪家好docker wordpress fpm
  • 电商网站有哪些功能网站商城前台模板免费下载
  • 电子商务网站建站目的福州快速优化排名
  • 大型网站的技术架构问题网站开发技术服务费合同
  • 企业建设网站意义MAKA网站做H5怎么压缩图片
  • asp源码自助建站为自己网站建设
  • 做网站编辑需要看什么书免费发布信息平台大全
  • 类似pc蛋蛋的网站建设济南网站建设 推搜点
  • 沈阳市城乡建设部官方网站网站页面设计的网址
  • 沧州瑞智网站建设建设好的网站
  • 最好的手表网站有哪些好的做问卷调查的网站好
  • 网站建设上海诏业营销渠道的概念
  • 网站内容管理系统贵州公司网站建设
  • 上海网站快速备案对网站建设有什么样意见