gpt4 book ai didi

java - 迭代数组直到提供长度并查找它覆盖的计数元素,如果同一元素出现多次,则忽略该元素

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

我有一个名为 m1(int input1,int input2,int[] input3) 的方法,它具有三个参数。无论 input1 中定义什么值都相同input3[] 中不应包含任何元素,即 input3 的长度将与 input1 的值相同。无论 input2 中定义什么值,迭代都将在 int input3 中完成,直到达到该长度。它必须给出计数它已经迭代了多少个元素,但是如果相同的数字重复,那么计数值将不会增加。第一次计数会增加,但一旦相同没有重复,则计数保持不变,当它获得不同的元素时,计数将增加,但迭代将完成,直到 input2 中提到的长度。

示例:

int input1 =5;
int input2= 3;
int[] input3 ={1,2,1,3,4};

预计:所以这里input1是5所以input3的长度也是5。这里 input2 的值为 3,所以在迭代 input3 时,它必须迭代直到第二个索引,即直到长度为 3。所以这里迭代将完成直到 {1,2,1} 并且 count 必须为 2,因为 1 被重复2次。

最佳答案

我们不需要第一个参数,我们可以使用 input3.length 来获取该属性。我针对这个问题给出了两种解决方案,

一种是使用Set,另一种是使用stream。集合是一种数据结构,它保持项目的唯一含义,即使您添加一个项目两次,它也只会保留其中一个,这样您就可以从中获取不同的元素计数。

第二种是使用 Java 流 API,您可以仅使用 Limit 和不同操作来获取唯一计数。

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

class Solution {
public static int findUniqueCountUsingSet(int length, int range, int[] input) {
Set<Integer> integers = new HashSet<>();
for (int i = 0; i < range; i++) {
integers.add(input[i]);
}
return integers.size();
}

public static int findUniqueCountUsingStream(int length, int range, int[] input) {
return (int) Arrays.stream(input).limit(range).distinct().count();
}

public static void main(String[] args) {
System.out.println(findUniqueCountUsingSet(5, 3, new int[]{1, 2, 1, 3, 4}));
System.out.println(findUniqueCountUsingStream(5, 3, new int[]{1, 2, 1, 3, 4}));
}
}

关于java - 迭代数组直到提供长度并查找它覆盖的计数元素,如果同一元素出现多次,则忽略该元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61627219/

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