C语言数组最长连续数长度
时间: 2024-12-08 09:25:21 浏览: 11
在C语言中,计算数组中最长连续数字序列(即连续的整数序列)通常涉及动态规划的思想。你可以通过遍历数组,比较当前元素和前一个元素的关系来找到最长的连续序列。以下是基本步骤:
1. 初始化两个变量:`current_length`记录当前连续序列的长度,`max_length`记录全局的最大长度。
2. 遍历数组,假设数组名为`arr`,从第一个元素开始:
- 如果当前元素等于前一个元素加一,说明这是一个连续序列,`current_length`加一。
- 否则,将`current_length`与`max_length`比较,如果`current_length`大于`max_length`,更新`max_length`为`current_length`,然后`current_length`重置为1,因为当前序列结束。
3. 遍历结束后,检查最后一次遍历时的`current_length`是否超过`max_length`,如果是,则也需要更新`max_length`。
下面是一个简单的示例函数实现这个功能:
```c
#include <stdio.h>
int longestConsecutive(int arr[], int n) {
if (n == 0) return 0;
int current_length = 1, max_length = 1;
for (int i = 1; i < n; i++) {
if (arr[i] == arr[i-1] + 1 || arr[i] == arr[i-1] - 1) {
current_length++;
} else {
if (current_length > max_length) {
max_length = current_length;
}
current_length = 1;
}
}
// 检查最后一个元素的连续情况
if (current_length > max_length && current_length != 1) {
max_length = current_length;
}
return max_length;
}
int main() {
int arr[] = {100, 4, 200, 1, 3, 2};
int n = sizeof(arr) / sizeof(arr[0]);
printf("Length of the longest consecutive sequence is: %d\n", longestConsecutive(arr, n));
return 0;
}
```
阅读全文