【问题标题】:Finding index of array of 2nd occurring element查找第二个出现元素的数组的索引
【发布时间】:2017-09-14 22:56:53
【问题描述】:

所以我要做的是找到数组中元素第二次出现的索引。

int nums[] = {1, 2, 1, 7, 3, 1, 2, 0 , 1 , 2, 2 };

试图获取数组中第二个 2 的索引。

希望有人能澄清一下。我使用了一个 for 循环和一个计数器,但它似乎不起作用

【问题讨论】:

  • 你在使用编程语言吗?
  • 我正在使用java
  • 我会为你添加一个Java标签。祝你好运。
  • 你需要显示一些代码。
  • 请阅读“How to Ask”,然后阅读edit您的问题,以提供一个minimal reproducible example,说明“似乎不起作用”的含义。

标签: java arrays element


【解决方案1】:

我不是在为您编写代码,但要点是:创建一个变量来告诉您之前是否看过您的号码。遍历您的数组,并在您第一次看到它时设置该变量以记住您已经看过它。下次您看到它时,请检查您创建的变量以确保您以前看过它,然后您将证明您已经看过两次。那时复制索引。

【讨论】:

    【解决方案2】:

    请参阅下面的我的伪代码,以帮助您找到正确的方向 :) 注意:将需要第二个 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;
    

    【讨论】:

      【解决方案3】:

      使用地图

      在关键位置添加元素并在值处出现 2 次。

      如果我们有 1 次出现,则在键中添加元素并保持值为 null 或 0。 如果我们有 2 次更新元素值,其索引位置具有相同的键。 如果我们有 n 次出现,则单向阀为空或 0。根据前 2 步拒绝或更改。

      希望你能理解。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-08
        • 2015-05-23
        • 2018-05-21
        • 2022-11-19
        • 2011-04-12
        • 2020-06-10
        • 2017-06-01
        • 2015-05-27
        相关资源
        最近更新 更多