2016-07-19 9 views
1

NSCountedSetを使用せずにどのようにすればよいのですか?(2回以上出現する)重複した数字を見つける必要がありますか?2回以上出現する配列内の数字を見つける

これは私がやったソリューションです:

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); 
}]; 

答えて

1

これはスウィフトを用いて達成することができるソリューションですが、この結果を達成するために、任意の言語を使用することができます。

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") 
     } 
    } 
    } 
関連する問題