給定乙個由 '1'(陸地)和 '0'(水)組成的的二維網格,計算島嶼的數量。
* 乙個島被水包圍,並且它是通過水平方向或垂直方向上相鄰的陸地連線而成的。你可以假設網格的四個邊均被水包圍。
例:1* 輸入:
4 5* 11110
* 11010
* 11000
* 00000
* 輸出: 1
例2:
輸入:4 5
* 11000
* 11000
* 00100
* 00011
輸出: 3
思路:
給陣列中每乙個0,1元素設定標誌位temp;遍歷二維陣列,檢視每乙個元素的上下左右四個位置,若當前位置值為1,且其上、左位置都是0,則num加一;檢查其右、下位置的元素,若等於1則將其表示位置為1;
public class numofisland0721
public static void main(string args)
//下if (i+1=0)
//右if (j+1廣度優先遍歷演算法思想:
廣度優先:
計算湖泊(島嶼)數量問題
題目 輸入x y,生成乙個二維的網格,網格中全部由h和s組成,h代表陸地,s代表湖泊。每乙個湖泊跟相鄰的湖泊組成大湖泊,大湖泊總是被陸地包圍。要求計算該二維網格內大湖泊的數量。思路 s與其相鄰的s共同組成大湖泊,因此遍歷時相鄰的s只計入一次。演算法採用遞迴的思路,用座標的形式,記錄大湖泊內所有的座標...
島嶼的數量(思維)
題目 有n個島連在一起形成了乙個大的島嶼,如果海平面上公升超過某些島的高度時,則這個島會被淹沒。原本的大島嶼則會分為多個小島嶼,如果海平面一直上公升,則所有島都會被淹沒在水下。給出n個島的高度。然後有q個查詢,每個查詢給出乙個海平面的高度h,問當海平面高度達到h時,海上共有多少個島嶼。例如 島嶼的高...
島嶼的數量 (思維)
有n個島連在一起形成了乙個大的島嶼,如果海平面上公升超過某些島的高度時,則這個島會被淹沒。原本的大島嶼則會分為多個小島嶼,如果海平面一直上公升,則所有島都會被淹沒在水下。給出n個島的高度。然後有q個查詢,每個查詢給出乙個海平面的高度h,問當海平面高度達到h時,海上共有多少個島嶼。例如 島嶼的高度為 ...