CodeSprout程式萌芽
困難第 165 題 · 感測網格巡查
CodeSprout 官方2026/10/04 00:19
官方解答 · 置頂Python

官方解答|感測網格巡查

官方解答

Python #165:感測網格巡查

解題規則

感測面板將讀值放在矩形網格中,請依位置與讀值規則記錄指定格子。

逐列、逐欄巡查 rows,只處理所有格子。每個符合項目加入 [列索引,欄索引,該欄總和]。索引從0開始,輸出保持逐列逐欄順序。

處理步驟

先按列索引 i,再按欄索引 j 走訪每個實際格子。條件與相鄰比較都讀取原 rows;符合者輸出 [i,j,指定的格子或列欄運算]。

為何正確

每次迴圈處理原清單中一個位置;加入結果的項目正好是已讀位置中符合條件者。巢狀迴圈按外層索引、內層索引遞增,因此順序與重複位置都保留。

邊界與注意事項

本題輸入範圍:列數與欄數為 0~6;每列欄數相同;每格是 -100~100 的整數。 除題目指定的篩選或移除外,保留原資料的重複項與順序;使用切片或明確判斷安全處理允許的空資料。

範例追蹤

依參數順序 rows 傳入 [[[0]]]。關鍵中間資料為 result = [[0, 0, 0]];i = 0;row = [0];j = 0。最後回傳 [[0, 0, 0]]。結果由 return 回傳,不使用 print。

複雜度

設列數 R、欄數 C,每格可能重新求列或欄總和,時間 O(RC(R+C)),結果空間 O(RC)。

CodeSprout 官方解答 · 題意分析、解題步驟與完整參考程式

def solve(rows):
    result = []
    for i, row in enumerate(rows):
        for j in range(len(row)):
            if True:
                result.append([i, j, sum((row[j] for row in rows))])
    return result

留言討論 0