【LeetCode】779. 第K個語法符號

思路

參考自Ikaruga的題解
在這裏插入圖片描述
通過上圖分析,可以得到其實第N行的第K個數字,可以從第N-1行的第(K-1)/2+1個數字產生
因此可以採用遞歸的方法進行處理

代碼

//公式法
//通過找規律可以發現
//第n行的第k個等於第n-1行的第(k-1)/2+1個數產生
//第n-1行的第(k-1)/2+1個數可能爲0,可能爲1,所以要分兩種情況
//判斷第n行中的第k個數字,屬於奇數還是偶數,奇數選擇第一個數字,偶數選擇第二個數字(通過%號來選擇)
class Solution {
public:
	int kthGrammar(int N, int K) {
		if (N == 1) return 0;
		return kthGrammar(N - 1, (K - 1) / 2 + 1) == 0 ? (K - 1) % 2 : 1 - (K - 1) % 2;
	}
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章