所以我要做的是找到数组中第二次出现元素的索引。
int nums[] = {1, 2, 1, 7, 3, 1, 2, 0 , 1 , 2, 2 };
尝试获取数组中第二个2的索引。
如果有人能澄清的话会很高兴。我使用了for循环和计数器,但它似乎没有工作
答案 0 :(得分:0)
我不是为你编写代码,但这里是要点:创建一个变量,告诉你之前是否看过你的号码。通过你的数组,你第一次看到它设置该变量,以记住你已经看到它。下次你看到它时检查你创建的变量以确保你以前看过它然后你会证明你已经看过它两次了。那时复制索引。
答案 1 :(得分:0)
请参阅下面的我的psudo代码,让你朝着正确的方向:) 注意:将需要第二个for循环来在下面的if语句中编写contains部分。如果您感到困惑http://javadevnotes.com/check-if-java-array-contains-a-certain-value
,请参阅此链接int nums[] = {1, 2, 1, 7, 3, 1, 2, 0 , 1 , 2, 2 };
int temp[] = new int[nums.length];
for (int i = 0; i < nums.length; i++){
if(temp contains nums[i]){
//then you have found the second instance
return nums[i];
}
else
//add nums[i] to the temp array``
}
// no second instance found
return -1;
答案 2 :(得分:0)
使用地图
在关键位置添加元素,在值处添加2次。
如果我们在key中有1-occurrence词添加元素并且保持值null或0。 如果我们通过索引位置具有相同键的2-occurrence更新元素值。 如果我们有n-occurrence出现,则止回阀为空或0.根据前两个步骤拒绝或改变。</ p>
我希望你理解。