LeetCode1035. 不相交的線
題目說明
我們在兩條獨立的水平線上按給定的順序寫下 A 和 B 中的整數。
現在,我們可以繪製一些連線兩個數字 A[i] 和 B[j] 的直線,只要 A[i] == B[j],且我們繪製的直線不與任何其他連線(非水平線)相交。
以這種方法繪製線條,並返回我們可以繪製的最大連線數。
示例 1
輸入:A = [1,4,2], B = [1,2,4]
輸出:2
解釋:
我們可以畫出兩條不交叉的線,如上圖所示。
我們無法畫出第三條不相交的直線,因為從 A[1]=4 到 B[2]=4 的直線將與從 A[2]=2 到 B[1]=2 的直線相交。
示例 2:
輸入:A = [2,5,1,2,5], B = [10,5,2,1,5,2]
輸出:3
示例 3:
輸入:A = [1,3,7,1,7,5], B = [1,9,2,5,1]
輸出:2
題目分析
這裡主要是利用了動態規劃裡面的最大公共子序列,然後得出遞迴的公式,按照公式進行書寫程式碼就可以。
下圖是最大公共子序列的狀態轉移方程。
需要注意的是定義的dp是從1開始,而訪問的元素和是從零開始,因此需要將改變相應的元素下標。
參考程式碼
class Solution {
public:
int maxUncrossedLines(vector<int>& A, vector<int>& B) {
int m = A.size(), n = B.size();
//建立一個二維陣列,注意定義方法
vector< vector<int> > dp( m+1,vector<int>(n+1));
for(int i = 0; i < m; i++)
{
for(int j = 0; j < n; j++)
{
if( A[i] == B[j])
dp[i+1][j+1] = dp[i][j] +1;
else
dp[i+1][j+1] = max(dp[i][j+1],dp[i+1][j]);
}
}
return dp[m][n];
}
};
相關文章
- 【計算幾何】線段相交
- POJ 4048 Chinese Repeating Crossbow(線段相交)ROS
- 【計算幾何】求線段相交交點座標
- POJ 1127-Jack Straws(計算幾何 線段相交)
- POJ 1039-Pipe(計算幾何-線段相交、求交點)
- HDU 3682To Be an Dream Architect(統計規律題目 三線相交bug)
- CSS實現兩個球相交的粘粘效果CSS
- 兩圓相交求面積c++C++
- 保持ssh的連線不斷開
- 無線網路連線不上的問題彙總
- DP線接顯示器點不亮的解決方法(接DP線點不亮,接HDMI線能點亮)
- 關於判斷兩個矩陣相交的一點想法矩陣
- MySQL 連線不上 急MySql
- 判斷元素是否在視口和元素相交
- 線性時不變系統的卷積卷積
- 外部連線不上redis的解決方法Redis
- 無線網路連線不上的原因與解決辦法
- 連線zk 報錯連線不上hbase jdbcJDBC
- SQL Server連線不上原因SQLServer
- 每日leetcode——160. 相交連結串列LeetCode
- MQTT伺服器連線不上的問題MQQT伺服器
- win10系統連線不上無線網Win10
- 解決laravel 連線不上docker 安裝的redisLaravelDockerRedis
- Excel不顯示網格線、更改網格線顏色、列印網格線Excel
- win10藍芽耳機連線不上怎麼辦_win10藍芽耳機連線不上的解決方法Win10藍芽
- day57 動態規劃part14 程式碼隨想錄演算法訓練營 1035. 不相交的線動態規劃演算法
- 資料結構與演算法——不相交集類的C++實現資料結構演算法C++
- 華為雲windows遠端介面連線不上的可能原因Windows
- css3實現不斷延長的斜線效果CSSS3
- Win8.1連不上無線網路的解決
- cmd 工具 ssh 保持連線不斷開
- SQL server資料庫連線不上SQLServer資料庫
- 為啥不離線程式設計呢?線程程式設計
- word空格處不顯示下劃線
- 人工智慧時代,企業的未來離不開雲專線——微雲專線人工智慧
- 無線網路卡狀態不對問題:已連線 顯示 未連線
- win10連線不上網路印表機怎麼辦 為什麼連線不上印表機Win10
- 路由器無線網路不穩定怎麼辦?路由器無線網路速度不穩定的原因和解決方法路由器