技术

·

2 min read

·

- Views

2766. 重新放置石块

Copied

2766. 重新放置石块

Q:

给你一个下标从 0 开始的整数数组 nums ,表示一些石块的初始位置。再给你两个长度 相等 下标从 0 开始的整数数组 moveFrom 和 moveTo 。

在 moveFrom.length 次操作内,你可以改变石块的位置。在第 i 次操作中,你将位置在 moveFrom[i] 的所有石块移到位置 moveTo[i] 。

完成这些操作后,请你按升序返回所有  石块的位置。

注意:

  • 如果一个位置至少有一个石块,我们称这个位置  石块。
  • 一个位置可能会有多个石块。

示例 1:

示例 2:

思路

哈希表+模拟解决

首先用一个哈希表记录每个石头的位置与该位置的石头数。然后模拟move过程。 如果from位置有石头,就把这个位置的全部石头 移到 to位置上去,并将from位置从哈希表中删除。 最后得到的map所有的key就是有石头的位置,将其排序返回即可。

Code