C++ 中用 N 個磁鐵形成磁鐵組的數量


數字1表示正極,而0表示負極。

磁鐵的兩極將為1001。可以使用相互吸引的磁鐵形成一個組。磁鐵的兩極彼此相對時,將屬於同一組。

這裡,給定 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

更新於: 2021-10-26

774 次檢視

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告