286 次瀏覽
如果一個序列先遞增後遞減,則稱該序列為位元尼克序列。在本問題中,給定一個全為正整數的陣列。我們需要找到一個子序列,該子序列先遞增後遞減。為了解決這個問題,我們將定義兩個子序列,它們是最長遞增子序列和最長遞減子序列。LIS 陣列將儲存以 array[i] 結尾的遞增子序列的長度。LDS 陣列將儲存從 array[i] 開始的遞減子序列的長度。使用這兩個陣列,我們可以得到最長位元尼克子序列的長度。輸入和輸出輸入:一個… 閱讀更多
712 次瀏覽
給定一個整數陣列。我們需要找到所有連續元素的和,其中和最大,該和將作為輸出傳送。使用動態規劃,我們將儲存到當前項為止的最大和。這將有助於找到陣列中連續元素的和。輸入和輸出輸入:一個整數陣列。{-2, -3, 4, -1, -2, 1, 5, -3} 輸出:子陣列的最大和為:7演算法maxSum(array, n)輸入 - 主陣列,陣列的大小。輸出 - 最大和。開始 tempMax := array[0] currentMax = tempMax for i := ... 閱讀更多
335 次瀏覽
獨立集是所有二叉樹節點的子集,當該子集中任意兩個節點之間沒有邊時。現在,我們將從一組元素中找到最長的獨立集。即如果這些元素用於形成二叉樹,則所有最大的子集,其中該子集中沒有元素彼此連線。輸入和輸出輸入:一棵二叉樹。輸出:最大獨立集的大小為:5演算法longSetSize(root)在此演算法中,將形成二叉樹,該樹的每個節點都將儲存資料和 setSize。輸入 - 二叉樹的根節點。輸出 - ... 閱讀更多
223 次瀏覽
讓我們考慮一下,我們將嘗試使用鍵盤編寫字母“A”。我們的目標是僅使用四個鍵並在文字欄位中嘗試編寫最大數量的“A”。這些鍵是“A”、“C”、“V”和“Ctrl”。為了編寫最大數量的 A,我們將使用 Ctrl + A 選擇全部,Ctrl + C 複製,Ctrl + V 貼上。輸入和輸出輸入:按鍵次數,例如 7 輸出:使用 7 次按鍵可以獲得的最大 A 數:9 按三次 A。然後 Ctrl+A、Ctrl+C、Ctrl+V、Ctrl+V演算法keyNumbers(keyStrokes)輸入:按鍵次數。輸出:使用這些… 閱讀更多
2K+ 次瀏覽
斐波那契數列是這樣的,0、1、1、2、3、5、8、13、21、34、55、……在這個序列中,第 n 項是第 (n-1) 項和第 (n-2) 項的和。為了生成,我們可以使用遞迴方法,但在動態規劃中,過程更簡單。它可以將所有斐波那契數儲存在一個表中,透過使用該表,它可以輕鬆地生成此序列中的下一項。輸入和輸出輸入:將項號作為輸入。假設它是 10 輸出:輸入項數:10 第 10 個斐波那契項:55演算法genFiboSeries(n)輸入:最大項數。輸出 - 第 n 個斐波那契… 閱讀更多
552 次瀏覽
對於這個問題,旅程中有 N 個站點。車輛從站點 0 開始到站點 N-1。在表格中,給出了所有站點對的車票費用。我們需要找到使用這些給定費用到達目的地的最低費用。輸入和輸出輸入:旅程的成本矩陣。0 15 80 90 ∞ 0 40 50 ∞ ∞ 0 70 ∞ ∞ ∞ 0 輸出:最低成本為 65。首先從 0 到達目的地 1。(費用 15),然後從 1 到 4(費用 50)。所以總費用為 65。演算法findMinCost(cost)輸入 - ... 閱讀更多
1K+ 次瀏覽
有一個數字 n 和一個值。我們需要找到所有 n 位數字,其中所有 n 位數字的和與給定值相同。這裡 0 不算作一位數字。數字 n 必須在 1 到 100 的範圍內,而值必須在 1 到 500 的範圍內。輸入和輸出輸入:此演算法獲取數字位數和總和值。假設數字計數為 3。和為 15。輸出:顯示和為 15 的不同 3 位數字的數量。結果為 69。(有… 閱讀更多
給定兩個字串。第一個字串是源字串,第二個字串是目標字串。在此程式中,我們需要找到將第一個字串轉換為第二個字串所需的操作次數。字串的編輯可以是插入某些元素、從第一個字串中刪除某些內容或修改某些內容以轉換為第二個字串。輸入和輸出輸入:要比較的兩個字串。字串 1:程式設計 字串 2:程式 輸出:輸入初始字串:程式設計 輸入最終字串:程式 將程式設計轉換為程式所需的更改次數為 4演算法editCount(initStr, ... 閱讀更多
545 次瀏覽
這是一個著名的謎題。假設有一棟有 n 層樓的建築,如果我們有 m 個雞蛋,那麼我們如何才能找到找到一個樓層所需的最小跌落次數,從該樓層可以安全地掉落雞蛋而不會破裂。有一些重要的要點需要記住 -當雞蛋從給定樓層掉落時沒有破裂,那麼它在任何較低的樓層也不會破裂。如果雞蛋從給定樓層掉落時破裂,那麼它在所有較高的樓層都會破裂。當雞蛋破裂時,必須將其丟棄,否則,我們可以再次使用它。輸入和… 閱讀更多
323 次瀏覽
有 n 個臺階。一個人將從第 1 個臺階走到第 n 個臺階。一個人在一步中最多可以跨越多少個臺階也是給定的。有了這些資訊,我們需要找到到達第 n 個臺階的可能方法。讓我們考慮一個人在每一步中最多可以跨越兩個臺階。因此,我們可以找到遞迴關係來解決這個問題。一個人可以移動到第 n 個臺階,要麼是從第 (n-1) 個臺階,要麼是從第 (n-2) 個臺階。所以 ways(n) = ways(n-1) + ways(n-2)。輸入和輸出輸入:臺階數,例如 10,一個人在一步中最多可以跨越的臺階數… 閱讀更多