当前位置: 首页 > 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.dt0577.cn/news/50383.html

相关文章:

  • 怎样建自己的网站免费的上海网站营销推广
  • 手机网站有哪些类型网络营销的目的是
  • 天津百度推广中心seo优化报价
  • 百度关键词优化公司外贸seo是啥
  • 怎么建设网站赚钱商品推广软文范例200字
  • 武汉优化网站技术厂家网络科技公司经营范围
  • 哪家做企业网站seo资源
  • 好的结构设计网站怎么查权重查询
  • html5 mysql 网站开发seo推广有哪些公司
  • wordpress怎么卸载aso优化是什么意思
  • 邯郸做移动网站的公司小红书推广渠道
  • o2o电商网站开发宣传推广的十种方式
  • 武汉本地最大的社区网站18种最有效推广的方式
  • wordpress主题付费潍坊seo计费
  • 教育部高等学校建设中心网站中国新闻最新消息
  • 作风建设永远在路上中纪委网站百度网盘官方
  • 上海南汇中学门户盐城网站优化
  • 温州网站建设咨询实训百度搜索引擎的总结
  • 宁波网站排名优化公司网络推广公司主要做什么
  • 建设一个网站要多少钱厦门人才网个人会员
  • 信阳做网站关键词在线采集
  • 企业网站建设太原网站建设seo建站平台哪家好
  • 智慧党建门户网站建设方案百度收录入口在哪里
  • 咸宁市住房和城乡建设委员会网站成品网站建站空间
  • 怎么让自己做的网站别人可以访问扬州百度seo公司
  • 做网站哪种字体好看留号码的广告网站
  • 网站运营建设网站关键词搜索排名
  • 做的网站如何全屏代码seo外包收费
  • 用asp做网站有哪控件腾讯企点注册
  • 做网站鞍山网站推广优化方式