Skip to content

Latest commit

 

History

History

2216.Minimum-Deletions-to-Make-Array-Beautiful

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

2216.Minimum-Deletions-to-Make-Array-Beautiful

此题容易想到一种贪心策略,就是从左往右,每两个作为一个pair,依次尝试构建相邻的互异元素。如果发现有一对元素是相同的,那就删去(任意)其中一个,将剩下的一个尝试与右边的元素继续配对,以此构造一对相邻的互异元素。直至整个序列都被处理完。

那么这种贪心策略是否正确呢?事实上,当我们第一次遇到一对相邻的相同元素时,其实有两种策略。举个例子... X Y | 2 2 | Z W ...

第一种方法,就是如上所说,我们删掉一个2,然后尝试将剩下的2与右边的Z配对,变成... X Y | 2 Z W ...

第二种方法,就是如上所说,我们删掉前面的Y(或者其他任何在2之前的元素),这样会将这对2拆开,试图将第一个2与之前的元素X配对,第二个2与之后的元素配对,这样就变成了... X 2 | 2 Z W ...

很显然,这两种方案产生的后半部分(即2ZW...)是完全一样的。而对于前半部分,第一种方法里X和Y已经是互异的了(因为我们约定这一对2是第一次遇到的一对相邻的相同元素);但第二种方法引入了一个不确定的因素,即X与2是否互异我们不得而知,有可能需要更多的操作来使得前半部分满足条件。所以总的来说第二种方法是不合算的。