美文网首页
leetcode_650_只有两个键的键盘

leetcode_650_只有两个键的键盘

作者: 壹叶壹 | 来源:发表于2018-06-03 23:40 被阅读0次

最初在一个记事本上只有一个字符 'A'。你每次可以对这个记事本进行两种操作:

Copy All (复制全部) : 你可以复制这个记事本中的所有字符(部分的复制是不允许的)。

Paste (粘贴) : 你可以粘贴你上一次复制的字符。

给定一个数字n。你需要使用最少的操作次数,在记事本中打印出恰好n个 'A'。输出能够打印出n个 'A' 的最少操作次数。

示例 1:

输入:3     

输出:3    

 解释:最初, 我们只有一个字符 'A'。

第 1 步, 我们使用Copy All操作。

第 2 步, 我们使用Paste 操作来获得 'AA'。

第 3 步, 我们使用Paste操作来获得 'AAA'。

说明:

n的取值范围是 [1, 1000] 。

我的思路:由于复制会增加黏贴字符的长度,所以应该尽可能的复制以提升黏贴的长度,进而减少操作;所以当拿到一个数时,我们先判断这个数是否是质数,如果是质数,则其只能由一个字符一个字符的黏贴得到,操作步数就是该数本身;如果不是质数,说明其可以通过其他数复制黏贴(仅仅两步得到);如8可由4复制黏贴得到;9可由3复制黏贴两次得到;如此知道处理N为一个质数时即可;

代码实现:

                                                                 咯咯咯

相关文章

网友评论

      本文标题:leetcode_650_只有两个键的键盘

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