C++ 程式碼用於查詢內盒的中心
假設我們有一個大小為 n x m 的矩陣。單元格要麼是白色的“W”,要麼是黑色的“B”。表格內的某個奇數長度的正方形被塗成黑色。我們必須找到這個正方形的中心。
因此,如果輸入是這樣的
| W | W | B | B | B | W |
| W | W | B | B | B | W |
| W | W | B | B | B | W |
| W | W | W | W | W | W |
| W | W | W | W | W | W |
那麼輸出將是 (3, 1)。
步驟
要解決這個問題,我們將遵循以下步驟 −
n := row count of matrix m := column count of matrix cnt := 0 X := 0 Y := 0 for initialize i := 0, when i < n, update (increase i by 1), do: for initialize j := 0, when j < m, update (increase j by 1), do: if matrix[i, j] is same as 'B', then: increase cnt by 1 X := X + i Y := Y + j X := X / cnt Y := Y / cnt return (Y, X)
示例
讓我們看以下實現以獲得更好的理解 −
#include <bits/stdc++.h>
using namespace std;
void solve(vector<vector<char>> matrix){
int n = matrix.size();
int m = matrix[0].size();
int cnt = 0, X = 0, Y = 0;
for (int i = 0; i < n; i++){
for (int j = 0; j < m; j++)
if (matrix[i][j] == 'B')
cnt++, X += i, Y += j;
}
X /= cnt;
Y /= cnt;
printf("%d, %d\n", Y, X);
}
int main(){
vector<vector<char>> matrix = { { 'W', 'W', 'B', 'B', 'B', 'W' },
{ 'W', 'W', 'B', 'B', 'B', 'W' }, { 'W', 'W', 'B', 'B', 'B', 'W' },
{ 'W', 'W', 'W', 'W', 'W', 'W' }, { 'W', 'W', 'W', 'W', 'W', 'W' } };
solve(matrix);
}輸入
{ { 'W', 'W', 'B', 'B', 'B', 'W' },
{ 'W', 'W', 'B', 'B', 'B', 'W' }, { 'W', 'W', 'B', 'B', 'B', 'W' },
{ 'W', 'W', 'W', 'W', 'W', 'W' }, { 'W', 'W', 'W', 'W', 'W', 'W' } }輸出
3, 1
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP