All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g0601_0700.s0650_2_keys_keyboard.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
package g0601_0700.s0650_2_keys_keyboard;

// #Medium #Dynamic_Programming #Math #2022_03_21_Time_0_ms_(100.00%)_Space_38.9_MB_(80.65%)

/**
 * 650 - 2 Keys Keyboard\.
 *
 * Medium
 *
 * There is only one character `'A'` on the screen of a notepad. You can perform two operations on this notepad for each step:
 *
 * *   Copy All: You can copy all the characters present on the screen (a partial copy is not allowed).
 * *   Paste: You can paste the characters which are copied last time.
 *
 * Given an integer `n`, return _the minimum number of operations to get the character_ `'A'` _exactly_ `n` _times on the screen_.
 *
 * **Example 1:**
 *
 * **Input:** n = 3
 *
 * **Output:** 3
 *
 * **Explanation:** 
 *
 * Initially, 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'.
 *
 * **Example 2:**
 *
 * **Input:** n = 1
 *
 * **Output:** 0
 *
 * **Constraints:**
 *
 * *   `1 <= n <= 1000`
**/
public class Solution {
    public int minSteps(int n) {
        int count = 1;
        int cost = 0;
        int addValue = 1;
        while (count < n) {
            cost++;
            count += addValue;
            if (n % count == 0) {
                cost++;
                addValue = count;
            }
        }
        return cost;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy