Python 程式:透過連線另一個數組的子陣列生成陣列
假設我們有一個名為 groups 的二維陣列和另一個數組 nums。我們需要檢查是否可以從陣列 nums 中選擇 n 個不相交的子陣列,使得第 i 個子陣列等於 groups[i](從 0 開始索引),並且如果 i > 0,則第 (i-1) 個子陣列將出現在 nums 中的第 i 個子陣列之前。
因此,如果輸入類似於 groups = [[2,-2,-2],[4,-3,0]] nums = [1,-1,0,2,-2,-2,4,-3,0],則輸出將為 true,因為陣列 group[0] 出現在 nums 的索引 3 到 5 處,而 group[1] 出現在 nums 的索引 6 到 8 處。
為了解決這個問題,我們將遵循以下步驟:
i := 0
對於 groups 中的每個 grp,執行以下操作:
對於從 i 到 nums 大小 - 1 的範圍內的每個 j,執行以下操作:
如果 nums[從索引 j 到 j+ grp 大小] 的子陣列與 grp 相同,則:
i := j + grp 大小
退出迴圈
否則:
返回 False
返回 True
示例
讓我們看看以下實現以更好地理解:
def solve(groups, nums):
i = 0
for grp in groups:
for j in range(i, len(nums)):
if nums[j:j+len(grp)] == grp:
i = j + len(grp)
break
else:
return False
return True
groups = [[2,-2,-2],[4,-3,0]]
nums = [1,-1,0,2,-2,-2,4,-3,0]
print(solve(groups, nums))輸入
[[2,-2,-2],[4,-3,0]], [1,-1,0,2,-2,-2,4,-3,0]
輸出
True
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP