LeetCode題解(1621):大小為K的不重疊線段的數目(Python)
題目:原題連結(中等)
標籤:動態規劃
解法 | 時間複雜度 | 空間複雜度 | 執行用時 |
---|---|---|---|
Ans 1 (Python) | O ( N × K ) O(N×K) O(N×K) | O ( N × K ) O(N×K) O(N×K) | 544ms (59%) |
Ans 2 (Python) | |||
Ans 3 (Python) |
解法一(動態規劃):
class Solution:
def numberOfSets(self, n: int, k: int) -> int:
# 處理不夠分的情況
if n - 1 < k:
# print("計算:", n, k, "->", 0)
return 0
# 處理剛好夠分的情況
if n - 1 == k:
# print("計算:", n, k, "->", 1)
return 1
# 處理只分成一個的情況
if k == 1:
# print("計算:", n, k, "->", n * (n - 1) // 2)
return n * (n - 1) // 2
# 處理一般的情況
# 定義狀態表格
# O(N×K)
dp = [[0] * n for _ in range(k)]
# 計算第一行
for j in range(1, n):
dp[0][j] = j * (j + 1) // 2
# 計算其他行
for i in range(1, k):
total = dp[i - 1][i]
for j in range(i + 1, n):
dp[i][j] = dp[i][j - 1] + total
total += dp[i - 1][j]
return dp[-1][-1] % (10 ** 9 + 7)
相關文章
- LeetCode題解(1512):好數對的數目(Python)LeetCodePython
- 貪心演算法-找不重疊的區間段演算法
- LeetCode題解(1639):統計只差一個字元的子串數目(Python)LeetCode字元Python
- python階段題目Python
- LeetCode題解(0692):前K個高頻單詞(Python)LeetCodePython
- Leetcode Remove Duplicates型別題目 (python)LeetCodeREM型別Python
- leetcode 解題 2.兩數相加-python3 題解LeetCodePython
- 【Leetcode每日一題】327. 區間和的個數(線段樹/樹狀陣列)LeetCode每日一題陣列
- LeetCode每日一題: 猜數字大小(No.374)LeetCode每日一題
- 怎樣解題|題3.1.16:子集的數目
- [貪心]最大線段重疊
- leetcode演算法題解(Java版)-14-第k小數問題LeetCode演算法Java
- LeetCode數學問題(Python)LeetCodePython
- LeetCode 402 移掉K位數字 HERODING的LeetCode之路LeetCode
- LeetCode題解(Offer22):尋找連結串列中倒數第k個節點(Python)LeetCodePython
- LeetCode題解(Offer17):列印從1到最大的n位數(Python)LeetCodePython
- LeetCode《買賣股票的最佳時機》系列題目,最詳解LeetCode
- 分享一道有趣的 Leetcode 題目LeetCode
- LeetCode BFS題目以及要注意的點LeetCode
- 線段樹經典題目(一定要做完)
- 線段樹(3)——區間操作疊加
- LeetCode-374-猜數字大小LeetCode
- Python的 100道題目Python
- Leetcode 題解系列 -- 和為s的連續正數序列(滑動視窗)LeetCode
- LeetCode 90 | 經典遞迴問題,求出所有不重複的子集IILeetCode遞迴
- 經典面試問題: Top K 之 ---- 海量資料找出現次數最多或,不重複的。面試
- 經典面試問題: Top K 之 —- 海量資料找出現次數最多或,不重複的。面試
- python 將檔案大小轉換為human readable 的大小表示Python
- leetcode 掃描線專題 06-leetcode.836 rectangle-overlap 力扣.836 矩形重疊LeetCode力扣
- dfs題目這樣去接題,秒殺leetcode題目LeetCode
- 提取不重複的整數
- [LeetCode] K-th Smallest Prime Fraction 第K小的質分數LeetCodeFraction質分數
- 線段樹分治略解&雜題解析
- 蛇皮的Python面試題目Python面試題
- LeetCode題解:劍指 Offer 40. 最小的k個數,二叉堆,JavaScript,詳細註釋LeetCodeJavaScript
- 【LeetCode】簡單題目集LeetCode
- leetcode 831題解【C++/Java/Python】LeetCodeC++JavaPython
- LeetCode題解(0407):接雨水II(Python)LeetCodePython