***題目介紹
給出 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 之間的距離是曼哈頓距離...