zoukankan      html  css  js  c++  java
  • [LeetCode] 651. 4 Keys Keyboard 四键的键盘

    Imagine you have a special keyboard with the following keys:

    Key 1: (A): Print one 'A' on screen.

    Key 2: (Ctrl-A): Select the whole screen.

    Key 3: (Ctrl-C): Copy selection to buffer.

    Key 4: (Ctrl-V): Print buffer on screen appending it after what has already been printed.

    Now, you can only press the keyboard for N times (with the above four keys), find out the maximum numbers of 'A' you can print on screen.

    Example 1:

    Input: N = 3
    Output: 3
    Explanation: 
    We can at most get 3 A's on screen by pressing following key sequence:
    A, A, A

    Example 2:

    Input: N = 7
    Output: 9
    Explanation: 
    We can at most get 9 A's on screen by pressing following key sequence:
    A, A, A, Ctrl A, Ctrl C, Ctrl V, Ctrl V

    Note:

    1. 1 <= N <= 50
    2. Answers will be in the range of 32-bit signed integer.

     C++:

    class Solution {
    public:
        int maxA(int N) {
            int res = N;
            for (int i = 1; i < N - 2; ++i) {
                res = max(res, maxA(i) * (N - 1 - i));
            }
            return res;
        }
    };
    

    C++:

     class Solution {
    public:
        int maxA(int N) {
            vector<int> dp(N + 1, 0);
            for (int i = 0; i <= N; ++i) {
                dp[i] = i;
                for (int j = 1; j < i - 2; ++j) {
                    dp[i] = max(dp[i], dp[j] * (i - j - 1));
                }
            }
            return dp[N];
        }
    };
    

      

    类似题目:

    [LeetCode] 650. 2 Keys Keyboard 两键的键盘

    All LeetCode Questions List 题目汇总

  • 相关阅读:
    IDEA2019破解版安装
    Docker (一)安装与基本命令
    js导出PDF
    python入门笔记一安装
    微信内关闭当前页面
    微信一些网页
    内网穿透工具:钉钉HTTP内网穿透使用详解
    html生成二维码,qr
    IDEA无法正常启动(打不开&报错)
    微信测试号
  • 原文地址:https://www.cnblogs.com/lightwindy/p/9515641.html
Copyright © 2011-2022 走看看