日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

循环数组最大值

發布時間:2024/7/19 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 循环数组最大值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目要求:

1、輸入一個一維整形數組,數組里有正數也有負數。
2、一維數組首尾相接,象個一條首尾相接帶子一樣。
3、數組中連續的一個或多個整數組成一個子數組,每個子數組都有一個和。
4、求所有子數組的和的最大值。?

設計思路:

1建立一個2維數組a(初定為1002列),第一列用于存放輸入數字,第二列用于表示本字符以前的最大子數組和的值。

2、輸入任意多個數,每輸入一個數number++numberint型用于表示數組長度),當輸入1024時停止輸入,把輸入的數存放在數組的第一列中。

3、進入循環,新建數組new,把輸入的數存入數組,把第i個存為第一個數。

????3.0,new[0][1]=new[0][0]

??? 3.1從第二個數開始進入循環,如果new[i-1][1]小于0new[i][1]=new[i][0];如果new[i-1]?????[1]大于0new[i][1]=new[i][0]+new[i-1][1]

????3.2比較第二列中的數,選出最大數即是子數組中和最大的

??? 3.3將最大的數放到a[i][1]

4、比較a[i][1]中數字,選出最大的數字即為答案

代碼如下:

?

package 數組問題;import java.util.Scanner;public class Shuzu {public static void main(String args[]){int[][] array=new int[100][2];int number = 0;//記錄有幾個數字Scanner sca=new Scanner(System.in);System.out.println("請輸入100以內個整數");for(int i=0;i<100;i++){array[i][0]=sca.nextInt();if(array[i][0]==1024) //以1024結束 {number=i;break;}}for(int i=0;i<number;i++){int[][] array_=new int[100][2];//為臨時數組賦值for(int j=0;j<number;j++){array_[j][0]=array[(j+i)%number][0];}//對臨時數組進行字符串最大值計算array_[0][1]=array_[0][0];for(int s=1;s<number;s++){if(array_[s-1][1]<0){array_[s][1]=array_[s][0];}if(array_[s-1][1]>=0){array_[s][1]=array_[s-1][1]+array_[s][0];}}int max=array_[0][1];for(int j=1;j<number;j++){if(array_[j][1]>=max) {max=array_[j][1];}}//最大值賦值給array數組array[i][1]=max;}int max=array[0][1];for(int i=1;i<number;i++){if(array[i][1]>=max) {max=array[i][1];}}System.out.println("最大和為"+max);}}

?

結果截圖:

結對開發圖:

合作體會:一個人的思路是有局限性的,比如這道題,在我對如何進行環狀連接,以及在Java中使用鏈表一籌莫展時,我的隊友提出了用取余法做一個假鏈表的方法解決了這一問題。

轉載于:https://www.cnblogs.com/hehejeson/articles/5379820.html

總結

以上是生活随笔為你收集整理的循环数组最大值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。