」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 。眼睛鍵盤

。眼睛鍵盤

發佈於2024-08-20
瀏覽:852

. eys Keyboard

650。 2鍵鍵盤

難度:

主題: 數學、動態規劃

記事本的螢幕上只有一個字元「A」。您可以在此記事本上為每個步驟執行以下兩個操作之一:

  • 全部複製:您可以複製螢幕上出現的所有字元(不允許部分複製)。
  • 貼上:可以貼上上次複製的字元。

給定一個整數n,返回在螢幕上準確地出現n次字元「A」的最少操作次數

範例1:

  • 輸入: n = 3
  • 輸出: 3
  • 解釋: 最初,我們有一個字元「A」。
    • 在步驟1中,我們使用全部複製操作。
    • 在步驟2中,我們使用貼上操作得到'AA'。
    • 在第3步中,我們使用貼上作業來取得'AAA'。

範例2:

  • 輸入: n = 1
  • 輸出: 0

範例3:

  • 輸入: n = 10
  • 輸出: 7

範例2:

  • 輸入: n = 24
  • 輸出: 9

約束:

  • 1

暗示:

  1. 如果n = 3,最後一步剪貼簿中可能有多少個字元? n = 7? n = 10? n = 24?

解決方案:

我們需要找到最少的操作次數才能在螢幕上精確地顯示 n 個字元「A」。我們將使用動態編程方法來實現這一目標。

  1. 理解問題:

    • 我們從螢幕上的一個「A」開始。
    • 我們可以「全部複製」(複製目前螢幕內容)或「貼上」(貼上最後複製的內容)。
    • 我們需要確定螢幕上剛好有 n 個字元「A」所需的最少操作。
  2. 動態規劃方法:

    • 使用動態程式設計 (DP) 陣列 dp,其中 dp[i] 表示在螢幕上精確取得 i 個字元所需的最少操作數。
    • 初始化 dp[1] = 0,因為需要 0 次操作才能在螢幕上顯示一個「A」。
    • 對於從 2 到 n 的每個字元 i,透過檢查 i 的每個除數來計算最少運算。如果 i 能被 d 整除,則:
      • 達到 i 所需的運算次數是達到 d 的運算加上 d 相乘得到 i 所需的運算次數。
  3. 解決步驟:

    • 使用 INF(或一個大數字)初始化 DP 數組,以獲得除 dp[1] 之外的所有值。
    • 對於從 2 到 n 的每個 i,迭代 i 的可能除數,並根據透過複製和貼上達到 i 所需的操作更新 dp[i]。

讓我們用 PHP 實作這個解決方案:650。 2鍵鍵盤


解釋:

  • 初始化: dp 被初始化為一個很大的數字(PHP_INT_MAX),以表示最初不可達的狀態。
  • 除數檢查: 對於每個數字 i,檢查所有除數 d。考慮到達 d 所需的操作然後相乘得到 i 來更新 dp[i]。
  • 輸出: 結果是 dp[n] 的值,它給出了在螢幕上精確取得 n 個字元所需的最少操作。

這種方法確保我們針對給定的限制有效地計算最少的操作。

聯絡連結

如果您發現本系列有幫助,請考慮在 GitHub 上給存儲庫 一顆星,或者在您最喜歡的社交網絡上分享該帖子? 。您的支持對我來說意義重大!

如果您想要更多類似的有用內容,請隨時關注我:

  • 領英
  • GitHub
版本聲明 本文轉載於:https://dev.to/mdarifulhaque/650-2-keys-keyboard-57n0?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 人臉檢測失敗原因及解決方案:Error -215
    人臉檢測失敗原因及解決方案:Error -215
    錯誤處理:解決“ error:( - 215)!empty()in Function openCv in Function MultSiscale中的“檢測”中的錯誤:在功能檢測中。”當Face Cascade分類器(即面部檢測至關重要的組件)未正確加載時,通常會出現此錯誤。 要解決此問題,必...
    程式設計 發佈於2025-04-18
  • PHP SimpleXML解析帶命名空間冒號的XML方法
    PHP SimpleXML解析帶命名空間冒號的XML方法
    在php 很少,請使用該限制很大,很少有很高。例如:這種技術可確保可以通過遍歷XML樹和使用兒童()方法()方法的XML樹和切換名稱空間來訪問名稱空間內的元素。
    程式設計 發佈於2025-04-18
  • 在Python中如何創建動態變量?
    在Python中如何創建動態變量?
    在Python 中,動態創建變量的功能可以是一種強大的工具,尤其是在使用複雜的數據結構或算法時,Dynamic Variable Creation的動態變量創建。 Python提供了幾種創造性的方法來實現這一目標。 利用dictionaries 一種有效的方法是利用字典。字典允許您動態創建密鑰並...
    程式設計 發佈於2025-04-18
  • 如何限制動態大小的父元素中元素的滾動範圍?
    如何限制動態大小的父元素中元素的滾動範圍?
    在交互式接口中實現垂直滾動元素的CSS高度限制問題:考慮一個佈局,其中我們具有與用戶垂直滾動一起移動的可滾動地圖div,同時與固定的固定sidebar保持一致。但是,地圖的滾動無限期擴展,超過了視口的高度,阻止用戶訪問頁面頁腳。 $("#map").css({ margin...
    程式設計 發佈於2025-04-18
  • 為什麼儘管有效代碼,為什麼在PHP中捕獲輸入?
    為什麼儘管有效代碼,為什麼在PHP中捕獲輸入?
    在php ;?>" method="post">The intention is to capture the input from the text box and display it when the submit button is clicked.但是,輸出...
    程式設計 發佈於2025-04-18
  • 如何從Google API中檢索最新的jQuery庫?
    如何從Google API中檢索最新的jQuery庫?
    從Google APIS 問題中提供的jQuery URL是版本1.2.6。對於檢索最新版本,以前有一種使用特定版本編號的替代方法,它是使用以下語法:獲取最新版本:未壓縮)While these legacy URLs still remain in use, it is recommended ...
    程式設計 發佈於2025-04-18
  • Java字符串非空且非null的有效檢查方法
    Java字符串非空且非null的有效檢查方法
    檢查字符串是否不是null而不是空的 if(str!= null && str.isementy())二手: if(str!= null && str.length()== 0) option 3:trim()。 isement(Isement() trim whitespace whites...
    程式設計 發佈於2025-04-18
  • PHP陣列鍵值異常:了解07和08的好奇情況
    PHP陣列鍵值異常:了解07和08的好奇情況
    PHP數組鍵值問題,使用07&08 在給定數月的數組中,鍵值07和08呈現令人困惑的行為時,就會出現一個不尋常的問題。運行print_r($月)返回意外結果:鍵“ 07”丟失,而鍵“ 08”分配給了9月的值。 此問題源於PHP對領先零的解釋。當一個數字帶有0(例如07或08)的前綴時,PHP將...
    程式設計 發佈於2025-04-18
  • 解決MySQL錯誤1153:數據包超出'max_allowed_packet'限制
    解決MySQL錯誤1153:數據包超出'max_allowed_packet'限制
    mysql錯誤1153:故障排除比“ max_allowed_pa​​cket” bytes 更大的數據包,用於面對陰謀mysql錯誤1153,同時導入數據capase doft a Database dust?讓我們深入研究罪魁禍首並探索解決方案以糾正此問題。 理解錯誤此錯誤表明在導入過程中...
    程式設計 發佈於2025-04-18
  • 切換到MySQLi後CodeIgniter連接MySQL數據庫失敗原因
    切換到MySQLi後CodeIgniter連接MySQL數據庫失敗原因
    Unable to Connect to MySQL Database: Troubleshooting Error MessageWhen attempting to switch from the MySQL driver to the MySQLi driver in CodeIgniter,...
    程式設計 發佈於2025-04-18
  • 如何從PHP中的Unicode字符串中有效地產生對URL友好的sl。
    如何從PHP中的Unicode字符串中有效地產生對URL友好的sl。
    為有效的slug生成首先,該函數用指定的分隔符替換所有非字母或數字字符。此步驟可確保slug遵守URL慣例。隨後,它採用ICONV函數將文本簡化為us-ascii兼容格式,從而允許更廣泛的字符集合兼容性。 接下來,該函數使用正則表達式刪除了不需要的字符,例如特殊字符和空格。此步驟可確保slug僅包...
    程式設計 發佈於2025-04-18
  • 為什麼使用Firefox後退按鈕時JavaScript執行停止?
    為什麼使用Firefox後退按鈕時JavaScript執行停止?
    導航歷史記錄問題:JavaScript使用Firefox Back Back 此行為是由瀏覽器緩存JavaScript資源引起的。要解決此問題並確保在後續頁面訪問中執行腳本,Firefox用戶應設置一個空功能。 警報'); }; alert('inline Alert')...
    程式設計 發佈於2025-04-18
  • 如何在其容器中為DIV創建平滑的左右CSS動畫?
    如何在其容器中為DIV創建平滑的左右CSS動畫?
    通用CSS動畫,用於左右運動 ,我們將探索創建一個通用的CSS動畫,以向左和右移動DIV,從而到達其容器的邊緣。該動畫可以應用於具有絕對定位的任何div,無論其未知長度如何。 問題:使用左直接導致瞬時消失 更加流暢的解決方案:混合轉換和左 [並實現平穩的,線性的運動,我們介紹了線性的轉換。...
    程式設計 發佈於2025-04-18
  • 您可以使用CSS在Chrome和Firefox中染色控制台輸出嗎?
    您可以使用CSS在Chrome和Firefox中染色控制台輸出嗎?
    在javascript console 中顯示顏色是可以使用chrome的控制台顯示彩色文本,例如紅色的redors,for for for for錯誤消息? 回答是的,可以使用CSS將顏色添加到Chrome和Firefox中的控制台顯示的消息(版本31或更高版本)中。要實現這一目標,請使用以下...
    程式設計 發佈於2025-04-18
  • 如何將MySQL數據庫添加到Visual Studio 2012中的數據源對話框中?
    如何將MySQL數據庫添加到Visual Studio 2012中的數據源對話框中?
    在Visual Studio 2012 儘管已安裝了MySQL Connector v.6.5.4,但無法將MySQL數據庫添加到實體框架的“ DataSource對話框”中。為了解決這一問題,至關重要的是要了解MySQL連接器v.6.5.5及以後的6.6.x版本將提供MySQL的官方Visual...
    程式設計 發佈於2025-04-18

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3