媽啦 看懂了
東西全部擠在一起誰他媽看得懂
class Solution {
public:
char findKthBit(int n, int k) {
if(k & 1){
// k is odd
// val: 0, 1, 0, 1, 0, ...
// idx: 1, 3, 5, 7, 9, ...
// >>1: 0, 1, 0, 1,
return '0' + ((k >> 1) & 1) ;
}
// lowbit = k & -k = pow(2)
// num = odd * lowbit
k /= (k & -k);
return '1' - ((k >> 1) & 1) ;
}
};
可以觀察到這個規律是鬼吧==
我還是乖乖翻來翻去好了
※ 引述《sixB (6B)》之銘言:
: 我吐了
: 數學解看不懂
: 太秀惹:(
: 我只會翻來翻去了
: 這他媽到底在幹嘛啦Qaq
: 一行?O(1) ?
: char findKthBit(int n, int k) {
: return '0' + (k / (k & -k) >> 1 & 1) ^ (k & 1 ^ 1);
: }
: ※ 引述《JIWP (神楽めあ的錢包)》之銘言:
: : 1545. Find Kth Bit in Nth Binary String
: : 給兩個整數n、k
: : S_n的二元字串定義為下
: : S_1 = "0"
: : S_i = S_i-1 + "1" + reverse(invert(s_i-1)) for i>1