279. perfect squares
給定正整數n,找到最少可分解為幾個數的平方和為n。
例如 n = 12 return 3 因為12 = 4+4+4 。給定n = 13 返回 2 因為13 = 4+ 9
class solution
else}}
int ans = a[n];
delete a;
return ans;
}};
53. maximum subarray
給定連續陣列,求其子陣列中和最大的陣列,返回最大和
class solution
} return max_t;
}};
55. jump game
維護乙個index變數,表示當前可訪問的最遠位置索引。
class solution
return false;
}};
72. edit distance
開乙個二維陣列d[i][j]來記錄a0-ai-1與b0-bj-1之間的編輯距離,要遞推時,需要考慮對其中乙個字串的刪除操作、插入操作和替換操作分別花費的開銷,從中找出乙個最小的開銷即為所求
dp[i][j]表示a的前i個和b的前j個相同後的最短距離
dp[i][j]來自於三種狀態
for(int j=1; j<=l2; ++j)
for(int i=1; i<=l1; ++i)
}return dp[l1][l2];}};
5. longest palindromic substring
最長回文子串,dp[i][j] = 1表示從i到j是回文。從小到大列舉子串長度,當s[i] = s[j]且dp[i+1][j-1]值為1的時候,dp[i][j]=1;
class solution
} for (int i = n- 1; i >= 0; i--)}}
} return s.substr(start, end - start + 1);
}};
動態規劃練習
題目描述 給出兩個單詞word1和word2,計算出將word1 轉換為word2的最少操作次數。你總共三種操作方法 插入乙個字元 刪除乙個字元 替換乙個字元 include include include using namespace std int find min int x,int y,i...
動態規劃練習
題目描述 蘋果裝配問題,把乙個區域分成n m個小區域,其中每個區域有一定數量的蘋果,設左上角為0,0,右下角為n 1,m 1.從0,0開始出發,每經過乙個區域,就把該區域的蘋果全部收走,求一條路徑使得收穫的蘋果最多。include include using namespace std class ...
動態規劃練習
1 問題描述 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。例 台階n 0 輸出 0 台階n 2 輸出 2 台階n 3 輸出 3 台階n 4 輸出 5 台階n 7 輸出 21 int step int a return b a int main cout ...