gpt4 book ai didi

java - 在 Java 中计算数组中的不同值

转载 作者:搜寻专家 更新时间:2023-11-01 01:25:38 26 4
gpt4 key购买 nike

我正在编写一个代码,其中我有一个 int[a] 并且该方法应该返回唯一值的数量。示例:{1} = 0 个不同的值,{3,3,3} = 0 个不同的值,{1,2} = 2 个不同的值,{1,2,3,4} = 4 个不同的值等。我不允许对数组进行排序

问题是我的方法可能行不通。我的 for 语句有问题,我无法弄清楚。

public class Program
{

public static void main(String[] args)
{
int[] a = {1, 2, 3, 1};

System.out.println(differentValuesUnsorted(a));
//run: 4 //should be 3
}

public static int differentValuesUnsorted(int[] a)
{
int values; //values of different numbers

if (a.length < 2)
{
return values = 0;
}else if (a[0] == a[1])
{
return values = 0;
}else
{
values = 2;
}

int numberValue = a[0];
for (int i = a[1]; i < a.length; i++)
{
if (a[i] != numberValue)
{
numberValue++;
values++;
}
}
return values;
}
}

有人可以帮忙吗?

最佳答案

这实际上比大多数人想象的要简单得多,这个方法非常有效:

public static int diffValues(int[] numArray){
int numOfDifferentVals = 0;

ArrayList<Integer> diffNum = new ArrayList<>();

for(int i=0; i<numArray.length; i++){
if(!diffNum.contains(numArray[i])){
diffNum.add(numArray[i]);
}
}

if(diffNum.size()==1){
numOfDifferentVals = 0;
}
else{
numOfDifferentVals = diffNum.size();
}

return numOfDifferentVals;
}

让我来引导你:

1) 提供一个整数数组作为参数。

2) 创建一个包含整数的 ArrayList:

  • 如果该数组列表包含数组中的整数作为参数提供,然后将该元素添加到数组参数中到数组列表
  • 如果该 arrayList 确实 包含来自 int 数组参数的该元素,则什么也不做。 (不要将该值添加到数组列表中)

注意:这意味着 ArrayList 包含 int[] 中的所有数字,并删除重复的数字。

3) ArrayList 的大小(类似于数组的长度属性)将是提供的数组中不同值的数量。


试用

输入:

  int[] numbers = {3,1,2,2,2,5,2,1,9,7};

输出:6

关于java - 在 Java 中计算数组中的不同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32444193/

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