給定長度分別為 m 和 n 的兩個陣列,其元素由 0-9 構成,表示兩個自然數各位上的數字。現在從這兩個陣列中選出 k (k <= m + n) 個數字拼接成乙個新的數,要求從同乙個陣列中取出的數字保持其在原陣列中的相對順序。
求滿足該條件的最大數。結果返回乙個表示該最大數的長度為 k 的陣列。
示例1:
輸入:今天的題給了我當頭一擊,沒辦法點開了熟悉的官方題解,通過找到兩個陣列的最大子串然後拼接在一起即可。(等後面研究明白了再來補充)nums1 = [3, 4, 6, 5]
nums2 = [9, 1, 2, 5, 8, 3]
k = 5
輸出:[9, 8, 6, 5, 3]
class
solution
}return maxsubsequence;
}public
int[
]maxsubsequence
(int
nums,
int k)
if(top < k -1)
else
}return stack;
}public
int[
]merge
(int
subsequence1,
int[
] subsequence2)
if(y ==0)
int mergelength = x + y;
int[
] merged =
newint
[mergelength]
;int index1 =
0, index2 =0;
for(
int i =
0; i < mergelength; i++
)else
}return merged;
}public
intcompare
(int
subsequence1,
int index1,
int[
] subsequence2,
int index2)
index1++
; index2++;}
return
(x - index1)
-(y - index2);}
}
每日一題 LeetCode
在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數。示例 1 輸入 7,5,6,4 輸出 5 限制 0 陣列長度 50000 思想是 分治演算法 所有的 逆序對 於 3 個部分 左邊區間的逆序對 右邊區間的逆序對 橫跨兩個區間的...
LeetCode每日一題(題1028)
最近在刷leetcode每日一題,每次做完之後總能有些收穫,所以想著不如每天寫個部落格記錄一下做的題目的解法以及自己寫的時候問題出在 從先序遍歷還原二叉樹 題目大意 給出乙個字串 1 2 3 4 5 6 7 1代表節點的值,前面的 個數代表節點的深度。如果只有乙個子節點,保證這個節點為左子節點。返回...
LeetCode每日一題(題139)
題目 題目大意 給出乙個字串s和乙個字串陣列words,判斷s是否能夠拆分成多個words中的字串。分析 這道題比較簡單的方式應該是採用動態規劃來做。對於任意乙個字串中的區間,可以判斷該區間組成的字串是否在字典中,如果是,則這個區間的真假取決於前面那個區間的真假。給出狀態轉移方程dp i dp j ...