给定一个数组a,输出数组中所有连续递增的最长元素。例如: int a[20]=”1,2,4,2,1,2,7,3,4,3,3,5,6,7,6,7,8,9,9,8”
时间: 2023-11-08 20:05:23 浏览: 39
题目要求输出数组中所有连续递增的最长元素,可以通过遍历数组并记录当前连续递增序列的起始位置和长度来实现。具体步骤如下:
1. 定义变量start表示当前连续递增序列的起始位置,变量maxLen表示当前连续递增序列的长度,变量maxStart表示最长连续递增序列的起始位置,变量maxLen表示最长连续递增序列的长度。
2. 遍历数组,如果当前元素比前一个元素大,则将当前连续递增序列的长度加1;否则,更新最长连续递增序列的起始位置和长度,并将当前连续递增序列的起始位置和长度重置为当前元素的位置和1。
3. 遍历结束后,如果当前连续递增序列的长度大于最长连续递增序列的长度,则更新最长连续递增序列的起始位置和长度。
4. 输出最长连续递增序列。
根据上述步骤,可以得到以下代码实现:
```
int a[20] = {1,2,4,2,1,2,7,3,4,3,3,5,6,7,6,7,8,9,9,8};
int start = 0, maxStart = 0, maxLen = 1, len = 1;
for (int i = 1; i < 20; i++) {
if (a[i] > a[i-1]) {
len++;
} else {
if (len > maxLen) {
maxLen = len;
maxStart = start;
}
start = i;
len = 1;
}
}
if (len > maxLen) {
maxLen = len;
maxStart = start;
}
for (int i = maxStart; i < maxStart + maxLen; i++) {
cout << a[i] << " ";
}
```
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.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)
![md](https://img-home.csdnimg.cn/images/20210720083646.png)
![md](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)