力バックル - マトリックス・セルの距離順

行列R行およびセルは0 <= R <R 0 <= C <Cを満たす整数座標(R、C)であるC列、与えられました。

加えて、我々は、マトリックス中のセル座標(R0、C0)を得ました。

前記二つの細胞(R1、C1)との間の距離、最小から順に配置された最大までの距離(C0、R0)によれば、マトリックスの全てのセルの座標を返す(R2、C2)マンハッタン距離、| R1 - R2 | + | C1 - C2 |。(この条件回答を満足する任意の順序を返すことができる。)

 

実施例1:

入力:R = 1、C 2 R0 0 C0 = 0、=、=
出力:[0,0]、[0,1]
辞書:から(R0、C0)他のセルからの距離にある[0、1]

実施例2:

入力:R = 2、C = 2 、R0 = 0、C0 = 1
出力:[0,1]、[ 0,0]、[1,1]、[1,0]
説明:から(R0、C0)他の細胞への距離:[0,1,1,2]
[0,1]、[ 1,1]、[0,0]、[1,0]正解として扱われます。

実施例3:

入力:R = 2、C = 3 、R0 = 1、C0 = 2
出力:[1,2]、[0,2]、[1,1]、[0,1]、[1,2 0]、[0,0]
説明:から(R0は、C0)他のセルまでの距離に:[0,1,1,2,2,3]
要件を満たすために他のトピックは、正解とみなされます例えば[1,2]、[1,1]、[0,2]、[1,0]、[0,1]、[0,0]。

 

ヒント:

    1 <= R&LT <= 100
    1 <= C <= 100。
    0 <= R0の<R&LT
    0 <CO = <C

ソース:滞在ボタン(LeetCode)
リンクします。https://leetcode-cn.com/problems/matrix-cells -in-距離順
すべてのネットワークからの控除が著作権を保有。商業転載は許可公式、非商用の転載は、ソースを明記してくださいお問い合わせください。

 

 

クラスソリューション{
     公共 のint [] [] allCellsDistOrder(INT R、INT C、INT R0、INT C0){
         INT [] [] RES = 新しい INT [Rの*のC] [2 ]。
        int型のインデックス= 0 ;
        以下のためにint型 i = 0; iはRを<; I ++ のためのINT J = 0; J <C; J ++ ){
                 int型 [] XY = {I、J}。
                RES [インデックス ++] = XY。
            } 
        は、Arrays.sort(RES、新しいコンパレータ< INT []> (){ 
            @Override 
            公共 intは比較(INT [] O1、INT [] O 2){
                 int型 DIS1 = Math.abs(O1 [0] -r0)+ Math.abs(O1 [1] - C0)。
                INT DIS2 = Math.abs(O 2 [0] -r0)+ Math.abs(O 2 [1] - C0)。
                返す DIS1 - DIS2を。
            } 
        })。
        リターンのres; 
    } 
}

 

おすすめ

転載: www.cnblogs.com/JAYPARK/p/11267080.html