力扣1030 距離順序排列矩陣單元格理解

2021-10-10 14:28:51 字數 1069 閱讀 1974

***題目介紹

給出 r 行 c 列的矩陣,其中的單元格的整數座標為 (r, c),滿足 0 <= r < r 且 0 <= c < c。

另外,我們在該矩陣中給出了乙個座標為 (r0, c0) 的單元格。

返回矩陣中的所有單元格的座標,並按到 (r0, c0) 的距離從最小到最大的順序排,其中,兩單元格(r1, c1) 和 (r2, c2) 之間的距離是曼哈頓距離,|r1 - r2| + |c1 - c2|。(你可以按任何滿足此條件的順序返回答案。)

此題重點在於搞明白你要定義的雙指標的意義,並且理清題中所敘述的步驟一步一步進行。

還有記得變二維於一維。即將下列**中的p當成乙個一維線性的裝有很多東西的東西。然後把他放在二維中,即放在乙個矩陣中進行乙個乙個的分發即可。

int r0;

//這裡之所以定義全域性變數是因為函式內也要用到

int c0;

intpx

(void

* x,

void

* y)

//abs為絕對值函式,這個px函式就是將兩個座標放進去進行計算後比較。

int*

*allcellsdistorder

(int r,

int c,

int r0,

int c0,

int* returnsize,

int*

* returncolumnsizes)

//所以p[i]表示矩陣的每乙個座標,所以可知他相當於陣列,存放兩個,所以給他2個記憶體。另乙個同理。

*returnsize =0;

int i,j;

for( i =

0; i < r; i++

)//因為這裡我們要的是個數而不是行數

}//i在上面起到限制即可。

//理清p[x][y] 中x為第x個指標,y為指標裡面的第幾個

qsort

(p, r*c,

sizeof

(int*)

, px)

;return p;

}

力扣 1030 距離順序排列矩陣單元格

給出 r 行 c 列的矩陣,其中的單元格的整數座標為 r,c 滿足 0 r r 且 0 c c。另外,我們在該矩陣中給出了乙個座標為 r0,c0 的單元格。返回矩陣中的所有單元格的座標,並按到 r0,c0 的距離從最小到最大的順序排,其中,兩單元格 r1,c1 和 r2,c2 之間的距離是曼哈頓距離...

Leetcode 1030 距離順序排列矩陣單元格

給出 r 行 c 列的矩陣,其中的單元格的整數座標為 r,c 滿足 0 r r 且 0 c c。另外,我們在該矩陣中給出了乙個座標為 r0,c0 的單元格。返回矩陣中的所有單元格的座標,並按到 r0,c0 的距離從最小到最大的順序排,其中,兩單元格 r1,c1 和 r2,c2 之間的距離是曼哈頓距離...

LeetCode1030 距離順序排列矩陣單元格

給出 r 行 c 列的矩陣,其中的單元格的整數座標為 r,c 滿足 0 r r 且 0 c c。另外,我們在該矩陣中給出了乙個座標為 r0,c0 的單元格。返回矩陣中的所有單元格的座標,並按到 r0,c0 的距離從最小到最大的順序排,其中,兩單元格 r1,c1 和 r2,c2 之間的距離是曼哈頓距離...