给字符串"RGRGR"
染成RGGGG,就是需要染色两次
染成RRGGG,就是需要染色三次
染成RRRGG,就是需要染色两次
染成RRRRG,就是需要染色三次
染成RRRRR,就是需要染色两次
那么最少次数就是2.
思路:左边全为R的数量依次增加,也就是遍历整个字符串,看左边有几个R,右边有几个G。
但是每次遍历的时候,都要去遍历一次字符串统计R和G的个数,所以时间复杂度为O(N^2)。
但是如果把G和G的出现的位置和次数信息先保留下来。每次直接从这个信息中去拿,不需要去遍历,就可以省很多时间。建立一个预处理数组。每次需要这个信息的时候就从数组里去拿