要让原数组的 值为 则需要让 中每一个数至少出现一次且 一次也不出现。
因此考虑对于每一个没有出现过的数,在其之前找到一个出现了至少两次的数并将其的一个数改为这个数。若找不到则无解。最后将答案加上 出现的次数即将所有 元素修改为 的代价。具体可以使用一个栈来维护上述信息。
时间复杂度为 ,可以通过。
代码。
发布于 2024-09-14 22:04 144 字 1 min read
要让原数组的 值为 则需要让 中每一个数至少出现一次且 一次也不出现。
因此考虑对于每一个没有出现过的数,在其之前找到一个出现了至少两次的数并将其的一个数改为这个数。若找不到则无解。最后将答案加上 出现的次数即将所有 元素修改为 的代价。具体可以使用一个栈来维护上述信息。
时间复杂度为 ,可以通过。
代码。
喜欢的话,留下你的评论吧~