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
- 貪心演算法-找不重疊的區間段演算法
- python階段題目Python
- LeetCode題解(1639):統計只差一個字元的子串數目(Python)LeetCode字元Python
- leetcode解題目錄LeetCode
- 幾個framelayout 的可以實現不重疊
- 【Leetcode每日一題】327. 區間和的個數(線段樹/樹狀陣列)LeetCode每日一題陣列
- 線段樹(3)——區間操作疊加
- leetcode 解題 2.兩數相加-python3 題解LeetCodePython
- Leetcode已刷題目題解彙總LeetCode
- leetcode演算法題解(Java版)-14-第k小數問題LeetCode演算法Java
- 經典面試問題: Top K 之 —- 海量資料找出現次數最多或,不重複的。面試
- 經典面試問題: Top K 之 ---- 海量資料找出現次數最多或,不重複的。面試
- LeetCode題解(0692):前K個高頻單詞(Python)LeetCodePython
- Leetcode Remove Duplicates型別題目 (python)LeetCodeREM型別Python
- LeetCode題解(Offer22):尋找連結串列中倒數第k個節點(Python)LeetCodePython
- LeetCode每日一題: 猜數字大小(No.374)LeetCode每日一題
- 線段樹分治略解&雜題解析
- Leetcode 題解系列 -- 和為s的連續正數序列(滑動視窗)LeetCode
- 百度筆試題:找最小的不重複數筆試
- 有趣的CSS題目(3): 層疊順序與堆疊上下文知多少CSS
- LeetCode數學問題(Python)LeetCodePython
- 【linux 學習】檢視目錄大小以及目錄數量的命令Linux
- 蛇皮的Python面試題目Python面試題
- LeetCode題解(Offer17):列印從1到最大的n位數(Python)LeetCodePython
- 線段樹也能是 Trie 樹 題解
- LeetCode《買賣股票的最佳時機》系列題目,最詳解LeetCode
- 用PriorityQueue解決選擇最小的K個數問題
- [LeetCode] K-th Smallest Prime Fraction 第K小的質分數LeetCodeFraction質分數
- 分享一道有趣的 Leetcode 題目LeetCode
- LeetCode BFS題目以及要注意的點LeetCode
- LeetCode 90 | 經典遞迴問題,求出所有不重複的子集IILeetCode遞迴
- HDU 1166 敵兵佈陣 線段樹入門題目
- dfs題目這樣去接題,秒殺leetcode題目LeetCode
- python 將檔案大小轉換為human readable 的大小表示Python
- LeetCode題解:劍指 Offer 40. 最小的k個數,二叉堆,JavaScript,詳細註釋LeetCodeJavaScript
- Python的 100道題目Python
- LeetCode 402 移掉K位數字 HERODING的LeetCode之路LeetCode