2016-10-01 2 views
2

タイプCGPoint(allPosselectedPos)の2つの配列を作成しました。一方にはもう一方が含まれています。以下にそれらの例を参照してください。1つの配列を別の配列と比較すると、どのように単一の空き位置を見つけるか?

allPos = [point1,..., point10] 
selectedPos = [point1, point4, point6, point7, point9, point10] 

すべての点は同じy座標を持っていると私は、最小から最大にそれらを配置しています。

にはどうすればselectedPosと比較して自由な位置の間でのみつのフリーの連続した位置か一つだけを持ってallPosからの位置の配列を見つけることができますか?その上で私の例から が

[point5, point8] 

答えて

0

だろう必要なのは、ちょうどすべてのポイントの後に、次の位置を見て、(のみ)1つの空のスポットまたは(のみ)3があるかどうかを確認していることを保存し、selectedPos配列であります新しい配列に追加します。

0

私はあなたに欠けている要素の位置を見つけることができる方法を示すsimleの例を作成します。

let first = [1,2,6,8,9,10] 
let second = [1,2,3,4,5,6,7,8,9,10] 

func fetchIndexesWithoutConsecutive(firstArray: [Int], secondArray: [Int]) -> [Int] { 
    //Output array 
    var array = [Int]() 

    //Enumerate second array and compare if first array conteins this elments if not we add postion of the missing item 
    for (index, value) in secondArray.enumerate() { 
     if (!firstArray.contains(value)) { 
      array.append(index) 
     } 
    } 

    guard array.count > 1 else { 
     return array 
    } 

    var result = [Int]() 

    for i in 0...array.count-2 { 
     let first = array[i] 
     let second = array[i+1] 
     if second - first > 1 { 
      result.append(second) 
     } 
    } 

    return result // [6] position of the elements in second array that are not in first array without consecutive 
} 

fetchIndexesWithoutConsecutive(first, secondArray: second) 
+0

ありがとうございますが、私の問題を完全に解決するものではありません。あなたのコードはすべてのフリーポジションを提供しますが、私は単一の空きスペースしか持たないものに興味があります。私の 'allPos'と' selectedPos'の例を使って、あなたが提供したコードは '[point2、point3、point5、point8]'になります。私は '[point5、point8]'である単一の空きスペース(連続した空きスペースなし)しか必要としません。これは物事をよりよく説明してくれることを願っています – Hilarious404

+0

実際のデータでポイントを記述することは難しいです –

+0

2つの 'Int'配列' allPos = [1、2、3、4、5、6、7、8、9、 10]と 'selectedPos = [1,4,6,7,9,10]の順に並んでいます(昇順)。 'allPos'と' selectedPos'を比較すると、選択されていない要素は '[2,3,5,8]です。 '2'、' 3'は連続した要素なので、結果に連続した要素が欲しくない。しかし、「5」と「8」は連続していません。ですから、私は '[5、8]'が最後にフィルタリングされた配列であることに興味があります。なぜなら、それらが連続していない唯一の選択されていない項目だからです。 – Hilarious404

関連する問題