【Leetcode】3081-1905
这个题目,初看感觉还是不太好做的,即便是对于每个?的位置都考虑每种情况,后续的情况要受到当前位置的影响的。
因此这里分析一下对于当前位置填写字母的影响,假设要填写的字母“x”(这里代指任意字母),其总共出现的次数为"cx",那么添加了一个新的"x"之后,实际上由于该字母产生的cost就由原本的"0+1+2...+(cx-1)"变为了"0+1+2+...+cx"也就是说,添加一个"x",总共的cost就增加了其出现的次数cx。
据此我们分析出了添加的策略,即采用贪心的策略,需要添加的即为最少的出现次数的字母,这样就导致cost增加的最少。此外,在上述分析过程中,我们没有明确要添加的字母的位置,即新添加的字母的位置并不会影响cost。由于返回的需要是字典序最小的,因此我们需要提前找出需要添加的字母并排序,依次添加到原本"?"的位置即可。

浙公网安备 33010602011771号