美文网首页
779 第k个语法符

779 第k个语法符

作者: 周英杰Anita | 来源:发表于2019-12-28 17:44 被阅读0次

题目描述:

在第一行我们写上一个 0。接下来的每一行,将前一行中的0替换为01,1替换为10。

给定行数 N 和序数 K,返回第 N 行中第 K个字符。(K从1开始)

例子:

输入: N = 1, K = 1
输出: 0

输入: N = 2, K = 1
输出: 0

输入: N = 2, K = 2
输出: 1

输入: N = 4, K = 5
输出: 1

解释:

第一行: 0
第二行: 01
第三行: 0110
第四行: 01101001

注意:

N 的范围 [1, 30].
K 的范围 [1, 2^(N-1)].

思路:

递归解法:
1、如果K= 1,返回0;
2、每一行都是根据上一行来生成的,把这样的上下两行写成比特形式找一下规律。
3、据此可以总结出规律,第 K 个数字是上一行第 (K+1) / 2 个数字生成的。如果K是偶数,那么K和上一行第 (K+1) / 2 个数字相反;如果K是偶数,那么K和上一行第 (K+1) / 2 个数字相同。

Java解法:

class Solution {
    public int kthGrammar(int N, int K) {
        if (K == 1)
        {
            return 0;
        }
        if(K % 2 == 0)
        {
            return 1 - kthGrammar(N - 1, K / 2);
        }else{
            return kthGrammar(N-1, (K + 1) / 2);
        }
    }
}

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/add-two-numbers

相关文章

  • 779 第k个语法符

    题目描述: 在第一行我们写上一个 0。接下来的每一行,将前一行中的0替换为01,1替换为10。 给定行数 N 和序...

  • LeetCode 779 第K个语法符号

    779. 第K个语法符号 在第一行我们写上一个 0。接下来的每一行,将前一行中的0替换为01,1替换为10。 给定...

  • 对象

    Object.defineProperty 语法 参数 返回值 属性描述符 对象遍历 for inObject.k...

  • 第K个语法符号

    第K个语法符号 解决方案方法一:暴力法方法二:递归(父变体)方法三:递归(翻转变体)方法四:二进制计数 解决方案 ...

  • 第K个语法符号

    在第一行我们写上一个 0。接下来的每一行,将前一行中的0替换为01,1替换为10。给定行数 N 和序数 K,返回第...

  • 算法- 第K个语法符号

    题目 在第一行我们写上一个 0。接下来的每一行,将前一行中的0替换为01,1替换为10。 给定行数 N 和序数 K...

  • JavaScript自学笔记

    js作用、基础语法和格式省略,可以百度 第3课 标识符 算数运算符 赋值运算符 JavaScript核心篇 6、...

  • Kotlin 进阶实战系列教程

    第1讲 快速开始 HelloWorld 第2讲 Kotlin 语法基础 第3讲 Kotlin 类型系统 第4讲 K...

  • SQL 笔记系列二(查询规则)

    TOP 子句 语法: MySQL 语法 Oracle 语法 LIKE 操作符 LIKE 操作符 用于在 Where...

  • 高级运算符

    运算符语法 在运算符,冒号和搜索项之间没用空格。 运算符搜素的部分遵从google的基本语法 高级运算符能和一个单...

网友评论

      本文标题:779 第k个语法符

      本文链接:https://www.haomeiwen.com/subject/czblnctx.html