c++输入n个数,n<=500000,每个数不超过10000,求最多连续出现了多少个相同的数。
时间: 2023-09-02 12:02:54 浏览: 156
对于题目中的问题,可以使用字符串的形式来处理。
首先,读入输入的n个数,并将它们转换成一个字符串。然后,使用一个计数器来记录当前连续出现的相同数的个数。同时,使用一个变量max_count来记录连续出现相同数的最大个数。
遍历字符串数组,比较当前元素与前一个元素是否相等。如果相等,则计数器加1;否则,将计数器重置为1。同时,更新max_count的值,如果计数器的值大于max_count。
遍历结束后,max_count的值就是最多连续出现了多少个相同的数。
以下是代码示例:
```
#include <iostream>
#include <string>
using namespace std;
int main() {
int n;
cin >> n;
string nums = ""; // 将输入的n个数转换成一个字符串
for (int i = 0; i < n; i++) {
int num;
cin >> num;
nums += to_string(num);
}
int count = 1; // 记录当前连续出现相同数的个数
int max_count = 1; // 记录连续出现相同数的最大个数
for (int i = 1; i < nums.length(); i++) {
if (nums[i] == nums[i - 1]) {
count++;
} else {
count = 1;
}
max_count = max(max_count, count);
}
cout << max_count << endl;
return 0;
}
```
该算法的时间复杂度为O(n),其中n为输入的数的个数。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)