1

重複した数字 (2 回以上表示される) を配列で見つける必要がありますNSCountedSet

これは私がした解決策です:

NSCountedSet *countedSet = [NSCountedSet setWithArray:array];
__block NSUInteger totalNumberOfDuplicates = 0;
[countedSet enumerateObjectsUsingBlock:^(id obj, BOOL *stop)
{

    NSUInteger duplicateCountForObject = [countedSet countForObject:obj];

    if (duplicateCountForObject > 1)

        totalNumberOfDuplicates += duplicateCountForObject;

    NSLog(@"%@ appears %ld times", obj, duplicateCountForObject);
}];
4

1 に答える 1

1

これは Swift を使用して実現できるソリューションですが、この結果を実現するために任意の言語を使用できます。

func checkDuplicatedNumbers()
  {
    let array = [1, 2, 3, 4, 0, 1, 5, 2, 1, 1, 1, 4]

    var dictioanry = [Int: Int]()

    for element in array
    {
      if let value = dictioanry[element] {
        let newValue = value + 1
        dictioanry[element] = newValue
      } else {
        dictioanry[element] = 1
      }
    }

    for key in dictioanry.keys {

      let count = dictioanry[key]

      if (count > 1) {
        print("Number \(key) repeats \(count) times")
      }
    }
  }
于 2016-07-19T14:08:29.883 に答える