怎么用C++判断两个数组有多少个数字连续相等
时间: 2024-09-12 13:01:59 浏览: 36
C++算法之在无序数组中选择第k小个数的实现方法
在C++中,判断两个整数数组中有多少个连续相等的数字,你可以采用遍历的方式进行比较。以下是一个简单的步骤:
1. 定义两个指针,一个指向第一个数组(arr1),另一个指向第二个数组(arr2)。
2. 使用嵌套循环,对于每个元素,检查它是否等于相邻元素。如果相等,并且接下来的元素也相等,就增加连续相等的数量计数器。
3. 当遍历完成后,返回这个计数器作为结果。
```cpp
#include <iostream>
#include <vector>
int countConsecutiveEqual(std::vector<int>& arr1, std::vector<int>& arr2) {
int n = arr1.size();
int m = arr2.size();
if (n != m) {
return -1; // 如果数组长度不匹配,无法直接比较
}
int consecutiveCount = 0;
for (int i = 0; i < n; ++i) {
if (arr1[i] == arr2[i]) { // 检查当前元素是否相等
int j = i + 1;
while (j < n && arr1[j] == arr2[j]) { // 遍历直到不相等为止
++consecutiveCount;
++j;
}
i = j - 1; // 更新指针位置,继续下一段连续的比较
} else {
consecutiveCount = 0; // 不相等则从头开始计数
}
}
return consecutiveCount;
}
// 测试例子
int main() {
std::vector<int> arr1 = {1, 2, 2, 3, 4, 4, 5};
std::vector<int> arr2 = {1, 2, 2, 3, 4, 4, 6};
int result = countConsecutiveEqual(arr1, arr2);
if (result != -1) {
std::cout << "There are " << result << " consecutive equal numbers." << std::endl;
} else {
std::cout << "Arrays cannot be compared directly due to different lengths." << std::endl;
}
return 0;
}
```
阅读全文