码迷,mamicode.com
首页 > 其他好文 > 详细

[Leetcode]650. 2 Keys Keyboard

时间:2018-01-26 14:11:35      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:time   exactly   esc   can   class   solution   init   amp   only   


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

标签:time   exactly   esc   can   class   solution   init   amp   only   

原文地址:https://www.cnblogs.com/David-Lin/p/8359027.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!