魔法师 (@Constanline) 在 Leetcode每日一题 —— 1611. 使整数变为 0 的最少操作次数 中发帖
1611. 使整数变为 0 的最少操作次数
思路
一开始没思路,先列几个数试一下,发现长度每长1,此时的最长队列都是将原长度的队列反向(头部+1)+正向连接起来。
1-0
10-11-01-00
100-101-111-110-010-011-001-000
1000-1001-1011-1010-1110-1111-1101-1100-0100-0101-0111-0110-0010-0011-0001-0000
10000-10001-10011-10010-10110-10111-10101-10100-11100-11101-11111-11110-11010-11011-11001-11000
于是考虑二分,如果当前值在队列的前半段,那后半段的2^(n-1)次操作肯定少不了,如果在后半段就无需考虑这一位。对每一位重复此操作即可得到结果。另外需要注意的是,队列的前后...