[Leetcode]650. 2 Keys Keyboard

Posted david-lin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Leetcode]650. 2 Keys Keyboard相关的知识,希望对你有一定的参考价值。


Initially on a notepad only one character ‘A‘ is present. You can perform two operations on this notepad for each step:

  1. Copy All: You can copy all the characters present on the notepad (partial copy is not allowed).
  2. Paste: You can paste the characters which are copied last time.

 

Given a number n. You have to get exactly n ‘A‘ on the notepad by performing the minimum number of steps permitted. Output the minimum number of steps to get n ‘A‘.

Example 1:

Input: 3
Output: 3
Explanation:
Intitally, we have one character ‘A‘.
In step 1, we use Copy All operation.
In step 2, we use Paste operation to get ‘AA‘.
In step 3, we use Paste operation to get ‘AAA‘.

class Solution {
public:
    int minSteps(int n) {
        if (n == 1)
            return 0;
        int dp[n]; dp[0] = 0; dp[1] = 2;
        for (int i = 3; i <= n; ++i){
            int index = -1;
            for (int j = 2; j < i; ++j)
                if (i % j == 0)
                    index = j;
            if (index == -1)
                dp[i-1] = i;
            else 
                dp[i-1] = dp[index-1] + (i / index);
        }
        return dp[n-1];
    }
};

 



以上是关于[Leetcode]650. 2 Keys Keyboard的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode刷题总结:650. 2 Keys Keyboard

leetcode 650. 2 Keys Keyboard 只有两个键的键盘(中等)

[leetcode-651-4 Keys Keyboard]

[LeetCode] 4 Keys Keyboard 四键的键盘

LeetCode --- 1629. Slowest Key 解题报告

LeetCode --- 1629. Slowest Key 解题报告