图论:以二维数组表示的连通图/树应如何表示?leetcode1042.不邻接种花

1042. 不邻接植花 - 力扣(LeetCode)

容器

在这道题中输入类似[[1, 2], [3, 4]] ,这意味着花园1连通了花园2,花园3连通了花园4。那么该怎么根据这个输入,获取一个方便后面算法的表示呢?我们通常管这种存放邻居的数据格式叫做:邻接表

通常我的思路是使用下列容器作为邻接表:

  • 哈希表,key就是花园i,value是与花园 i 接壤的其他所有花园。
  • 二维数组,第 i 个数组中的元素是与花园 i 接壤的其他所有花园。

算法

假如题目给的是一颗二叉树,要求相邻节点颜色不同,那我们可以用回溯解决。但使用哈希表或者二维数组作为容器,该怎么解决这题?

方法一:

你可能感兴趣的:(技术面算法,图论,算法,leetcode)