符號表示
資料 | ||
---|---|---|
矩形重疊的個數 | A |
新增矩形 | ||
---|---|---|
將對應於左上角及右下角的元素加 1。 | A[x1][y1]++ A[x2][y2]++ | |
將對應於左下角及右上角的元素減 1。 | A[x1][y2]-- A[x2][y1]-- | |
掃描水平方向 | ||
加上前 1 欄的元素。 | A[x][y] ← A[x][y] + A[x-1][y] | |
掃描垂直方向 | ||
加上前 1 列的元素。 | A[x][y] ← A[x][y] + A[x][y-1] |
演算法動畫
新增矩形
掃描水平方向
掃描垂直方向
資料 | ||
---|---|---|
矩形重疊的個數 | A |
新增矩形 | ||
---|---|---|
將對應於左上角及右下角的元素加 1。 | A[x1][y1]++ A[x2][y2]++ | |
將對應於左下角及右上角的元素減 1。 | A[x1][y2]-- A[x2][y1]-- | |
掃描水平方向 | ||
加上前 1 欄的元素。 | A[x][y] ← A[x][y] + A[x-1][y] | |
掃描垂直方向 | ||
加上前 1 列的元素。 | A[x][y] ← A[x][y] + A[x][y-1] |
新增矩形
掃描水平方向
掃描垂直方向