gpt4 book ai didi

java - 无法从 20 个随机生成的数字中打印最大的数组数字

转载 作者:行者123 更新时间:2023-12-02 01:58:49 25 4
gpt4 key购买 nike

好吧,过去三天我一整天都在做这项作业,但我没有任何运气。我本来不想寻求帮助,但最终还是放弃了。但我还需要在代码中实现一件事。这就是我要实现的“查找数组数据中最长的连续正数序列的长度。如果内容是:4 5 0 2 . . . -1 88 78 66 -6。长度将是3. 对于这个问题,0 被认为是非负数,但不是正数”。 另外,我还有一个问题,无法打印 20 数组中最大的 int。

import java.util.Random;
import java.util.ArrayList;
public class arrayops {

public static int findLargest(ArrayList<Integer> nums) {
int greatestnum = nums.get(0);
for (Integer item : nums) {
if (item > greatestnum) {
greatestnum = item;
}
}
return greatestnum;
}
public static int randomData(ArrayList<Integer> nums) {
int[] array = new int [20];
Random random = new Random();
for (int i = 0; i < array.length; i++) {
array[i] = -100 + random.nextInt(201);
}
return -100 + random.nextInt(201);
}

public static void main(String[] args) {
ArrayList<Integer> nums = new ArrayList<Integer>();
nums.add(1);
nums.add(4);
nums.add(13);
nums.add(43);
nums.add(-25);
nums.add(17);
nums.add(22);
nums.add(-37);
nums.add(29);
System.out.println("The Greatest Number from the hardcoded numbers " + findLargest(nums));
System.out.println("The Greatest number from the random numbers " + randomData(nums));
}
}

最佳答案

findLargest 方法:

public static int findLargest(ArrayList<Integer> nums) {
int greatestnum = 0;
int greatestLen = 0;
for (Integer item : nums) {
if (item > 0) {
greatestLen++ ;
if(greatestLen > greatestnum)
greatestnum = greatestLen;
}
else
greatestLen = 0;
}
return greatestnum;
}

使用的逻辑:

  1. 将遇到的最长链的长度和当前链的长度保存在两个单独的变量中(分别是greatestnum和greatestLen)

  2. 每次遇到正数时都会增加GreatestLen。如果该数字小于或等于零,则重置此计数。

  3. 如果当前链的长度大于之前最长链的长度,则将最长链的大小发送到当前链的大小。

关于java - 无法从 20 个随机生成的数字中打印最大的数组数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51917753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com