leetcode 419. 甲板上的戰艦

要求以此遍歷並且不修改原數組的條件下:

  1. 每個戰艦不相鄰,正常情況下,我們找到頭部,然後向下或者向右比哪裏數組,修改數組,去除戰艦,然後遍歷下一個。
  2. 發現,只需要遍歷發現頭部即可,最左邊或者最上邊X就是一個戰艦。如果此刻位置的上邊或者左邊是X,則是戰艦的中部。
//419.
int countBattleships(vector<vector<char>>& board) {
	const int n = board.size();
	if (n == 0)return 0;
	const int m = board[0].size();
	if (m == 0)return 0;
	int result = 0;
	for (int i = 0; i < n; ++i) {
		for (int j = 0; j < m; ++j) {
			if (board[i][j] == '.') continue;
			if (i > 0 && board[i - 1][j] == 'X') continue;
			if (j > 0 && board[i][j - 1] == 'X') continue;
			++result;
		}
	}
	return result;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章