EZ. 观察变换规律可知, 一个数字变换成的两个数字第一个还是他自己,另一个是他的反。所以把这n次操作看成完全二叉树,自底向上搜索即可。
class Solution {
public:
int kthGrammar(int N, int K) {
int flag = 0;
while (N > 1) {
flag = K % 2 ? flag : flag ^ 1;
K = (K + 1) / 2;
N--;
}
return flag;
}
};