为了账号安全,请及时绑定邮箱和手机立即绑定

我找不到获取数组中最大数字的方法(Ar.getMax())。我的输出一直为0

我找不到获取数组中最大数字的方法(Ar.getMax())。我的输出一直为0

蝴蝶不菲 2024-01-05 16:24:59
我试图使用函数 getMax() 获取数组中的最大数字,但输出始终为 0。当输入为: 12 87 3 10 55 69 40结果应为: 69相反结果为: 0  public int getMax()      {          int x=1;          int y=0;             for(int i=0; i<size; i++)              {                  if(i!=size-1)                  {                      if(arr[i]>arr[x])                      {                          y=arr[i];                          x++;                      }                  }              }          return y;      }
查看完整描述

3 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

由于 89 较大,我认为您需要数组中最长非递减子序列的局部最大值。这个问题没有很好地表述,所以可能没有作业。


array: 12 87 3 10 55 69 40

sequences: 12 87

           3 10 55 *69* answer

           40


int maxOfLongestSubsequence(int[] a) {

   int maxSeqLength = 0;

   int max = Integer.MIN_VALUE;

   int seqStart = -1;

   for (int i = 0; i <= a.length; ++i) {

       if (i == 0 || i == a.length - 1 || a[i] < a[i - 1]) { // New subsequence

           int seqLength = i - seqStart;

           if (i - seqLength > maxSeqLength) {

               maxSeqLength = seqLength;

               max = a[i - 1];

           }

           seqStart = i;

        }

    }

    return max;

}

阐述问题。像我一样描述数据。并将其编程出来。


查看完整回答
反对 回复 2024-01-05
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

只需将默认最大值设置为数组中的第一个值即可。然后,迭代数组,将该值与数组中的下一个值进行比较。如果较大,则将其分配给 max。继续到数组末尾。



查看完整回答
反对 回复 2024-01-05
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

您可以像这样选择 int 数组的最大值:


int [] numbers = new int[]{12,87,3,10,55,69,40};


        int max = numbers[0];

        for(int current : numbers) {

            max = current >= max ? current : max;

        }

        System.out.println(max);


查看完整回答
反对 回复 2024-01-05
  • 3 回答
  • 0 关注
  • 117 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信