亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我找不到獲取數組中最大數字的方法(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 關注
  • 186 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號