首页 > 解决方案 > 迭代一个数组直到提供的长度以及找到它覆盖的计数元素,如果它不止一次,则忽略相同的元素

问题描述

我有一个名为 的方法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} 并且计数必须为 2,因为 1 重复了 2 次。

标签: javaarrays

解决方案


如果您使用的语言具有像 C++ 集这样的独特容器,这可能是实现此目的的一种方法。否则,您可以将每个值放在一个临时数组中,并使用 if 语句(使用小型搜索算法)检查它是否尚未添加。然后只需返回该新数组的大小。


推荐阅读