日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 651. 4键键盘(DP,Ctrl+CV)

發布時間:2024/7/5 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 651. 4键键盘(DP,Ctrl+CV) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1. 題目
    • 2. 解題

1. 題目

假設你有一個特殊的鍵盤包含下面的按鍵:

Key 1: (A):在屏幕上打印一個 'A'。Key 2: (Ctrl-A):選中整個屏幕。Key 3: (Ctrl-C):復制選中區域到緩沖區。Key 4: (Ctrl-V):將緩沖區內容輸出到上次輸入的結束位置,并顯示在屏幕上。

現在,你只可以按鍵 N 次(使用上述四種按鍵),請問屏幕上最多可以顯示幾個 'A’呢?

樣例 1: 輸入: N = 3 輸出: 3 解釋: 我們最多可以在屏幕上顯示三個'A'通過如下順序按鍵: A, A, A樣例 2: 輸入: N = 7 輸出: 9 解釋: 我們最多可以在屏幕上顯示九個'A'通過如下順序按鍵: A, A, A, Ctrl A, Ctrl C, Ctrl V, Ctrl V 注釋: 1 <= N <= 50 結果不會超過 32 位有符號整數范圍。

來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/4-keys-keyboard
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

2. 解題

  • 只按一個鍵A,直接在前一個狀態的個數+1
  • 按ACV的話,可以從前面所有可能的位置ACV一次以后,一直VVV
  • 可以粘貼以后,VVV好于ACV,但是ACVV 好于VVVV(數量一樣,但是前者粘貼板的A數量多)


class Solution { public:int maxA(int N) {vector<int> dp(N+1,0);//dp[i] 表示,第 i 次按下鍵的最多A個數for(int i = 1, j; i <= N; ++i){dp[i] = max(dp[i], dp[i-1]+1);//按下A鍵for(j = 0; j <= i-2; ++j)//從前面可以的地方選一次進行ACV,后面一直V...// -2 表示 AC的少了2次,后面可以一直粘(i-j-2)次 + 原來自己一次dp[i] = max(dp[i], dp[j]*(i-j-1));}return dp[N];} };

0 ms 6.1 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!

總結

以上是生活随笔為你收集整理的LeetCode 651. 4键键盘(DP,Ctrl+CV)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。