我创建了两个CGPoint类型的数组(allPos
和selectedPos
)。一个包含另一个。请在下面查看它们的示例:
allPos = [point1,..., point10]
selectedPos = [point1, point4, point6, point7, point9, point10]
所有点都有相同的y
坐标,我将它们从最小到最大排列。
与allPos
相比,我怎样才能找到selectedPos
只有一个自由连续位置或只有一个自由位置的位置数组?
从我上面的例子中可以看出
[point5, point8]
答案 0 :(得分:0)
您需要的只是selectedPos数组,只需在每个点后查看以下位置,看看是否(仅)有一个空位或(仅)3并将其保存到新数组中。
答案 1 :(得分: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)