C++ 中用 N 個磁鐵形成磁鐵組的數量
數字1表示正極,而0表示負極。
磁鐵的兩極將為10或01。可以使用相互吸引的磁鐵形成一個組。磁鐵的兩極彼此相對時,將屬於同一組。
這裡,給定 N 個磁鐵。您需要找出可以用它們形成多少個組。
每當有兩個不同的磁鐵並排放置時,就會形成一個新的組。在這種情況下,增加組的數量。
讓我們看一個例子。
輸入
magnets = ["10", "01", "01", "01", "10", "01"]
輸出
4
在給定的陣列中,有 4 個磁鐵彼此相鄰並相互吸引。它們是“10”、“01”、“10”、“01”。
演算法
- 用磁鐵初始化陣列。
- 將計數初始化為 1,因為我們正在取對。
- 編寫一個迴圈,從陣列的索引 1 迭代到陣列的末尾。
- 如果當前磁鐵不等於前一個磁鐵,則增加計數。
- 返回計數。
實現
以下是上述演算法在 C++ 中的實現
#include <bits/stdc++.h>
using namespace std;
int getMangetGroupsCount(string magnets[], int n) {
int count = 1;
for (int i = 1; i < n; i++) {
if (magnets[i] != magnets[i - 1]) {
count++;
}
}
return count;
}
int main() {
string magnets[] = { "10", "01", "01", "01", "10", "01" };
int n = 6;
cout << getMangetGroupsCount(magnets, n) << endl;
return 0;
}輸出
如果執行以上程式碼,則將獲得以下結果。
4
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP