Java程序中,现有一个int型 维数组int array ]=(1,4,2,3,0,5,7);编写1个程序输出其中的最大值与最小值的和。要求不使用for-each循环也不使用Arrays.stream(array),输出结果为7
时间: 2024-12-01 18:29:44 浏览: 18
在Java中,要找到int型数组`int[] array = {1, 4, 2, 3, 0, 5, 7}`的最大值与最小值之和,可以使用两个指针法,这种方法避免了遍历整个数组。以下是代码实现:
```java
int[] array = {1, 4, 2, 3, 0, 5, 7};
int min = array[0]; // 假设第一个元素是最小值
int max = array[0]; // 同理,假设第一个元素也是最大值
if (array.length > 1) {
// 使用两个指针i和j,初始时i指向第二个元素
int i = 1;
int j = i;
while (j < array.length) {
// 如果当前元素比已知最小值还小,更新min
if (array[j] < min) {
min = array[j];
}
// 如果当前元素比已知最大值还大,更新max
else if (array[j] > max) {
max = array[j];
}
// 移动右指针j
j++;
// 如果左指针i还没移动,说明已经找到了新的最小值,无需继续比较
if (array[i] == min) {
break;
}
// 如果左指针i大于等于右指针j,说明右指针可能超过了最大值,将左指针移到下一个位置并继续比较
else if (i < j) {
i++;
}
}
}
// 最终的结果是max(最大值)和min(最小值)相加
int sum = max + min;
System.out.println("The sum of the maximum and minimum values is: " + sum); // 输出:7
```
阅读全文