判断数组后N位是否一致
时间: 2024-10-27 11:10:01 浏览: 12
C#各种数组的用法实例演示
要判断数组后N位是否一致,你可以使用双指针技巧。这里有两个不同的示例,一个是C语言的方法,另一个是递归的Python版本:
**C语言示例[^1]**:
```c
#include <stdio.h>
// 函数定义:检查数组后N位是否一致
bool checkConsistency(int arr[], int size, int N) {
// 初始化指针i和j
int i = size - N;
int j = size - 1;
while (i < j) {
// 比较arr[i]和arr[j]
if (arr[i] != arr[j]) {
return false; // 如果不一致,返回false
}
i++; // 移动左指针向前一位
j--; // 移动右指针向后一位
}
// 如果遍历结束还没发现不一致,说明后N位一致
return true;
}
// 示例
int main() {
int a[] = {1, 2, 3, 4, 5, 5, 5}; // 假设我们要检查后3位是否一致
int N = 3;
if (checkConsistency(a, sizeof(a) / sizeof(a[0]), N)) {
printf("后%dn位一致\n", N);
} else {
printf("后%dn位不一致\n", N);
}
return 0;
}
```
**Python递归示例[^2]**:
```python
def is_sequence_increasing(arr, n):
# 基线条件:长度为1的序列一定是递增的
if len(arr) == 1:
return True
# 检查当前元素是否大于前一个元素
if arr[n - 1] <= arr[n - 2]:
return False
# 递归调用检查剩余部分
return is_sequence_increasing(arr, n - 1)
# 使用方式
arr = [1, 2, 3, 4, 5, 5, 5]
N = 3
if is_sequence_increasing(arr[N:], len(arr)):
print(f"后{N}位一致")
else:
print(f"后{N}位不一致")
```
阅读全文