当前位置: 首页 > 知识库问答 >
问题:

在简单问题中使用数组的最小值

曹钊
2023-03-14

我正在学习Java,作为我工作的一部分,我需要能够计算数组中的值范围(最大-最小1)。我不允许使用像collections.min(数组)这样的方法。到目前为止,我的解决方案是这样的:

public static int range(int[] data){
int min = 99999999;
int max = 0; 
int test = 0;
int range = 0;
for (int i = 0; i < data.length; i++){
     test = data[i];

     if (test > max)
         max = test;
     if (test < min) 
         min = test;
}
range = (max - min) + 1;
return range; 

}

虽然它对他们有用,但它并不特别优雅。最小值为9999999可以工作,但如果我最终在使用大于该值的数字时遇到问题,它就不起作用了。

我觉得应该有一个更好的解决方案,但我没有看到一种方法可以在不将int min设置为非常高的值的情况下找到最小值。否则,数组可能有非常大的数字,最小值永远不会改变,因为数组中的值总是大于它。

共有1个答案

栾鸣
2023-03-14

此方法返回至少一个元素的所有非空数组的范围,否则会抛出一个IllegalArgumentException。这是通过检查max来完成的

public static int range(int[] list){

    int max = Integer.MIN_VALUE, min = Integer.MAX_VALUE;

    for(int i = 0; list != null && i < list.length; i++){
        int current = list[i];

        if(current > max){
             max = current;
        }

        if(current < min){
             min = current;
        }
    }

    if(max >= min){
        return max-min+1;
    }
    else throw IllegalArgumentException("Zero-length and null arrays have an undefined range!");
}

 类似资料:
  • 我在这里写了这两个方法来查找最小和最大值。#2是基于这篇文章的这个答案。 如果我运行这样的简单基准测试: } 我通常会得到这样的结果: 我把算法弄错了吗?我本以为至少会有类似的结果。

  • 本文向大家介绍JAVA得到数组中最大值和最小值的简单实例,包括了JAVA得到数组中最大值和最小值的简单实例的使用技巧和注意事项,需要的朋友参考一下 今天本文与大家分享如何得到数组中的最大值和最小值的实例。很适合Java初学者复习数组的基本用法与流程控制语句的使用。具体如下: 这个程序主要是求得数组中的最大值和最小值 该程序输出结果: 程序说明如下: 1.第6行声明整数变量i 做为循环控制变量及数组

  • 问题内容: java数组没有toString方法,如何使用简单的方法输出数组内容? 问题答案: 从Java 5开始,你可以将Arrays.toString(arr)或Arrays.deepToString(arr)用于数组中的数组。 请注意,Object[]版本会调用.toString()数组中的每个对象。输出甚至按照您的要求进行修饰。 例子: 简单数组: 输出: 嵌套数组: 输出: double

  • 本文向大家介绍最小平台数问题,包括了最小平台数问题的使用技巧和注意事项,需要的朋友参考一下 给出了到达和离开时间的列表。现在的问题是要找到铁路所需的最少平台数,因为没有火车在等待。 通过将所有时间按排序顺序进行排序,我们可以轻松找到解决方案,并且可以轻松地跟踪火车何时到达但尚未离开车站。 此问题的时间复杂度为O(n Log n)。 输入输出 算法 输入-到达时间和出发时间的列表以及列表中的项目数

  • 问题内容: 在javascript中实现数组交集的最简单,无库代码是什么?我想写 并得到 问题答案: 使用的组合和: 或者,如vrugtehagel在注释中建议的那样,您可以使用更新的代码甚至更简单的代码: 对于较旧的浏览器:

  • 问题内容: 有没有一种更干净的方法来获取Swift中数组的最后两项?通常,我尝试避免使用这种方法,因为与索引一一对应很容易。(在此示例中,使用Swift 1.2。) 我希望有一些更接近Python的便利。 问题答案: 使用Swift 5时,您可以根据需要选择以下模式之一,以便从数组的最后两个元素中获取新的数组。 #1。使用数组的 使用Swift,符合协议的对象具有方法。数组具有以下声明: 返回一个