zoukankan      html  css  js  c++  java
  • Leetcode刷题记(12)—报数

    题目要求:

    报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:

    1. 1
    2. 11
    3. 21
    4. 1211
    5. 111221

    1 被读作  "one 1"  ("一个一") , 即 11。
    11 被读作 "two 1s" ("两个一"), 即 21。
    21 被读作 "one 2",  "one 1" ("一个二" ,  "一个一") , 即 1211。

    给定一个正整数 n(1 ≤ n ≤ 30),输出报数序列的第 n 项。

    题解:

    1.读懂题意!!!读懂题后写出来几个数字没有发现什么规律,总觉得要用递归循环,但不知道怎么写,就刚开始用最笨的方法写出了30个数,时间复杂度为O(1),但是真心晕,再多一点数就自闭了....

    2.后来查看了一下大家的评论,用两层循环即可:外层循环为输入的整数n,因为下一个数字依赖于上一个数字,第二层循环对上一个数字进行遍历,统计每一个数字出现的次数,然后插入到字符串中,这种方法虽然时间复杂度比暴力法高,但看起来舒爽多了:

  • 相关阅读:
    [Graph]Doubling Algorithm
    Luogu 3203 BZOJ 2002——弹飞绵羊
    BZOJ 1468——tree
    BZOJ 10628 Luogu 2633
    Mo's Algorithm
    bzoj1063: [Noi2008]道路设计
    bzoj1264: [AHOI2006]基因匹配Match
    bzoj1177: [Apio2009]Oil
    bzoj1260: [CQOI2007]涂色paint
    bzoj3674: 可持久化并查集加强版
  • 原文地址:https://www.cnblogs.com/wangjm63/p/11510695.html
Copyright © 2011-2022 走看看