lintcode 四鍵鍵盤

2021-09-24 16:23:31 字數 993 閱讀 7998

假設你有乙個特殊的鍵盤,鍵盤上有如下鍵:

鍵1: (a): 在螢幕上列印乙個』a』。

鍵2: (ctrl-a): 選擇整個螢幕。

鍵3: (ctrl-c): 複製選擇到緩衝區。

鍵4: (ctrl-v): 在螢幕上已有的內容後面追加列印緩衝區的內容。

現在,你只能按鍵盤上n次(使用以上四個鍵),找出你可以在螢幕上列印的「a」的最大數量

輸入: 3

輸出: 3

解釋: a, a, a

輸入: 7

輸出: 9

解釋: a, a, a, ctrl a, ctrl c, ctrl v, ctrl v

1 <= n <= 50

答案將在32位有符號整數的範圍內。

動態規劃

dpi表示i個操作所能得到的最多的a的個數

初始狀態下 dpi=0,當i<=6的時候容易得到dpi=i

對於任意dpi 可以省去j個操作

j=1 dpi=1+dpi-1

j=2 dpi=2+dpi-2

當j>2的時候,可以全選 複製 貼上,所以dpi = j * dp(i-1-j)

取其中最大值即可

123

4567

891011

1213

1415

1617

1819

2021

2223

2425

2627

28

class

solution

for (int j = 2; j <= (i-2); j++)

int m = max(dp[i-1]+1, dp[i-2]+2);

dp[i] = max(dp[i], m);

}return dp[n];}};

-------------end of file

thanks for reading-------------

leetcode 651 四鍵鍵盤

labuladong的演算法小抄 dp 參考 labuladong的演算法小抄p162 這種題目的引數不是陣列,僅僅是乙個數n,所以需要自己思考狀態究竟是什麼 隨著我們敲擊鍵盤,剩餘的敲擊次數會減少 狀態一 螢幕上的a會增加 狀態二 剪下板中的a也會變化 狀態三 但這種思考方式下,由於狀態二和狀態三...

動態規劃之四鍵鍵盤

四鍵鍵盤問題很有意思,而且可以明顯感受到 對 dp 陣列的不同定義需要完全不同的邏輯,從而產生完全不同的解法。首先看一下題目 如何在 n 次敲擊按鈕後得到最多的 a?我們窮舉唄,每次有對於每次按鍵,我們可以窮舉四種可能,很明顯就是乙個動態規劃問題。這種思路會很容易理解,但是效率並不高,我們直接走流程...

Excel鍵盤快捷鍵大全 四

調整工具欄和任務窗格的大小 1.按 alt 來選定選單欄。2.重複按 ctrl tab 以選定所需的工具欄或任務窗格。3.請執行下列操作之一 調整工具欄的大小 1.在工具欄中,按 ctrl 空格鍵可顯示 工具欄選項 選單。2.選擇 大小 命令,再按 enter。3.使用箭頭鍵調整工具欄的大小。移動工...