給定兩個字串形式的非負整數 num1 和num2 ,計算它們的和。
注意:num1 和num2 的長度都小於 5100.
num1 和num2 都只包含數字 0-9.
num1 和num2 都不包含任何前導零。
你不能使用任何內建 biginteger 庫, 也不能直接將輸入的字串轉換為整數形式。
class
solution
return ans.
reverse()
.tostring()
;}}
自己寫的有問題,看著官方解答,改著改著就和人家的一樣了:cry
#第二題
給你兩個單詞 word1 和 word2,請你計算出將 word1 轉換成 word2 所使用的最少運算元 。
你可以對乙個單詞進行如下三種操作:
插入乙個字元
刪除乙個字元
替換乙個字元
示例 1:輸入:word1 = 「horse」, word2 = 「ros」
輸出:3
解釋:horse -> rorse (將 『h』 替換為 『r』)
rorse -> rose (刪除 『r』)
rose -> ros (刪除 『e』)
示例 2:
輸入:word1 = 「intention」, word2 = 「execution」
輸出:5
解釋:intention -> inention (刪除 『t』)
inention -> enention (將 『i』 替換為 『e』)
enention -> exention (將 『n』 替換為 『x』)
exention -> exection (將 『n』 替換為 『c』)
exection -> execution (插入 『u』)
class
solution
else
dp[i]
[j]=
min(dp[i-1]
[j], dp[i]
[j-1
], dp[i-1]
[j-1])
+1;}
return dp[len1]
[len2];}
public
intmin
(int a,
int b,
int c)
}
動態規劃經典問題,主要是推導出狀態轉移方程。
給定乙個包含紅色、白色和藍色,一共 n 個元素的陣列,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色、白色、藍色順序排列。
此題中,我們使用整數 0、 1 和 2 分別表示紅色、白色和藍色。
注意:不能使用**庫中的排序函式來解決這道題。
示例:乙個直觀的解決方案是使用計數排序的兩趟掃瞄演算法。輸入: [2,0,2,1,1,0]
輸出: [0,0,1,1,2,2]
高階:
首先,迭代計算出0、1 和 2 元素的個數,然後按照0、1、2的排序,重寫當前陣列。
你能想出乙個僅使用常數空間的一趟掃瞄演算法嗎?
1389a - lcm problem
#include
using
namespace std;
intmain()
}
做這個題,數學知識太重要了!!! 演算法每日一題 07 31
魔術索引。在陣列a 0 n 1 中,有所謂的魔術索引,滿足條件a i i。給定乙個有序整數陣列,編寫一種方法找出魔術索引,若有的話,在陣列a中找出乙個魔術索引,如果沒有,則返回 1。若有多個魔術索引,返回索引值最小的乙個。示例1 輸入 nums 0,2,3,4,5 輸出 0 說明 0下標的元素為0 ...
演算法每日一題 08 08
題目 include using namespace std define maxn 200010 int ton maxn in maxn 存拓撲序和入度 struct node int n,m queue int q vectorask 存無向邊 vectorans 存結果 vector int...
演算法每日一題 08 19
題目鏈結 乍一看以為要排序,竟然是個思維題。include using namespace std 將和盡量變大,這樣才能盡可能的短 int main if flag true cout 1 endl else cout n endl return0 這個題寫的沒錯,可是總是在乙個測試樣例中超時,可...