塗りつぶし

image 整数の2次元配列で表され、(0から65535まで)の画像の画素値を表す各整数。

座標指定された  (sr, sc) 塗りつぶしの開始画素(行と列)、及び画素値を表し  newColor、「塗りつぶし」イメージ。

「塗りつぶし」を実行するために、開始画素を考慮する、および任意の画素が開始画素と同じ色の出発画素に4方向接続、および任意の画素は、同じ色として有するもの画素(4-方向接続開始画素)など。newcolorは有する前述の画素の全ての色を置き換えます。

最後には、変更されたイメージを返します。

例1:

入力:
画像= [1,1,1]、[1,1,0]、[1,0,1] 
SR = 1、SC = 1、newcolorは= 2 
出力:[[2,2,2] 、[2,2,0]、[2,0,1]] 
説明:
画像の中心からの(位置(SR、SC)=(1、1))、全ての画素が接続され
、同一の経路によって開始画素として色が新しい色に着色されています。
それは4方向接続されていないので、底角は、2着色されていません
開始画素に。

1  クラスソリューション{
 2      公共の INT [] [] FLOODFILL(INT [] []画像、INT SR、INT SC、INT newcolorは){
 3          であれば(画像[SR] [SC] == newcolorは)戻り画像。
4          フィル(画像、SR、SC、画像[SR] [SC]、newcolorは)。
5          リターン画像。
6      }
 7      
8      プライベート 空隙充填(INT [] []画像、int型の SR、int型 SC、int型の色、int型newcolorは)を{
 9         もし(SR < 0 || SR> = image.length || SC < 0 || SC> =画像[ 0!] .LENGTH ||画像[SR] [SC] =色)のリターン;
10          画像[SR] [SC] = newcolorは。
11          充填(画像、SR + 1 、SC、色、newcolorは)。
12          充填(画像、SR - 1 、SC、色、newcolorは)。
13          充填(画像、SR、SC + 1 、色、newcolorは)。
14          充填(画像、SR、SC - 1 、色、newcolorは)。
15      }
 16 }

 

おすすめ

転載: www.cnblogs.com/beiyeqingteng/p/11124125.html