如果只有1个硬币,它正面或者反面都可以,因为没有其它可对比的,所以状态都一致,不用翻转,那么小的k就是0。
如果都翻转1次,可以使所有的一致,但对于初始时全部相同的情况也必须翻转1次,就一定会产生不一致,所以1次不行。
有不一样的想法可打在下面的评论区
既然翻转偶数次不变,为啥还要翻转呢,当然是为了凑数,因为要求必须刚好都翻转k次。
例如下面这种场景,只有1个反面,有n-1个正面。1和n-1都是奇数,所以无论是全部翻转成正面或是反面,都需要奇数次翻转,偶数次不可能一致,所以n为偶数时无解。
n为奇数,所以正面和反面肯定就是一奇一偶。
if ((n & 1) == ) printf("No Solution!\n");
else printf("%d\n", n - 1);
文章平台:微信公众号【小K算法】。