首页 > 其他分享 >779_ 第K个语法符号

779_ 第K个语法符号

时间:2022-10-20 09:33:05浏览次数:65  
标签:return 符号 int 复杂度 779 语法 解题 find

Problem: 779. 第K个语法符号

目录

思路

  • 本题首先看范围,发现n的范围是1到30,则说明枚举法是行不通的,由此,我们必须想想其他的办法,观察后发现有两个规律:
    1. n 行数字的前n/2项与第 n-1 行数字相同;
    2. 而第 n 行数字的后n/2项与第 n 行数字的前n/2项每位都相反。
  • 根据上述描述便可得解题思路

解题方法

  1. 利用递归找到k位对应的规律,之后对k进行向上回溯,直到n==1的时候,这时候便已经回溯到顶了;
  2. 由此可以看出递归的出口变为n==1,返回0
  3. 对于规律1要将返回值取反,而对规律二不进行任何操作。

复杂度

  • 时间复杂度:

添加时间复杂度,\(O(log2(n))\)

  • 空间复杂度:

添加空间复杂度,\(O(log2(n))\)

Code


class Solution {
private:
int find(int n,int k)
{
    int x=pow(2,n-1);
    if(n==1)
    {
        return 0;
    }
    if(k>x/2)
    {
        int y;
        find(n-1,k-x/2)==1?y=0:y=1;
        return y;
    }
    else
    {
        return find(n-1,k);
    }
}

public:
    int kthGrammar(int n, int k) {
        return find(n,k);
    }
};

// 0
// 0 1
// 01 10
// 0110 1001
// 01101001 10010110

SharedScreenshot.jpg

标签:return,符号,int,复杂度,779,语法,解题,find
From: https://www.cnblogs.com/bzxf/p/16808611.html

相关文章

  • Python系列(1)- Python 简介、开发环境配置和基础语法
    Python是荷兰人GuidovanRossum(吉多·范罗苏姆,中国程序员称其为“龟叔”)在1990年初开发的一种解释型编程语言。Python源代码遵循GPL(GNUGeneralPublicLicense)......
  • Linux 中的硬链接和符号链接
    https://linux265.com/news/7471.html类似Windows系统中的快捷方式,在Linux系统中它们叫链接,存在两种形式,一种是硬链接,一种是符号链接。通常,符号链接也被称为软链接,下......
  • sap shift语法
    shift xxxLEFTDELETINGLEADING / RIGHTDELETINGTRAILINGmask语法。xxx中的第一或最后一个字符出现在mask中,则xxx左移或者右移一位,然后继续判断最新的字符串的......
  • esp32-s3-st7796-lvgl8
    1、先按照文档步骤,将基础框架搭建好https://blog.csdn.net/qq_20540901/article/details/1236086552、然后遇到一些花屏、显示不正确等等问题,使用以下的sdkconfig创建默......
  • jsp语法与jsp基本知识点
    【jsp基本知识点】JSP全称是JavaServerPages,它和servlet技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。JSP/Servlet规范。JSP实......
  • python 脚本实现bugly自动上传符号文件
    bugly更新之后,符号文件不再支持拖拽或者选择文件的方式上传了,官方提供了一个上传的工具包,通过buglyqq-upload-symbol.jar实现上传,每次上架app都需要手动去配置相关参数和组......
  • 去除不可作为文件名的特殊符号
    ///<summary>///去除特殊字符///</summary>///<paramname="text"></param>///<returns></returns>publicstaticst......
  • JavaScript学习--基础语法03
    流程控制语句if,switch,for,while,dowhile。与之前学过的一样。 函数定义:通过function关键词定义语法:functionfunctionName(参数1,参数2) {  具体代码 }例子fu......
  • Markdown相关语法介绍
    Markdown相关语法介绍一、介绍Markdown是一种轻量级标记语言,后缀是.md或者.markdown。二、基础使用标题#h1##h2###h3####h4#####h5######h6h1h2h3......
  • MySQL数据库SQL语法常规操作
    必备sql和表关系及授权graphLR执行1[必备sql和授权]执行2[SQL强化和实践]执行3[索引和函数以及存储过程]执行4[Python操作mysql和应用]执行5[常见SQL语句......