我将在序言中说我使用的是Swift1.2。我目前正在研究一个广度优先搜索算法,我以前在其他语言中实现过这个算法,比如javaScript或Python。
真的,我所要求的是一个优雅的方法来找到这两个之间的重复...
var visited: [(x: Int, y: Int)] = []
var Walkable = checkForWalkable(gridFile, Eval) // returns list of tuples that are walkable
outputs:
Checked for walkable: [(28, 22), (27, 21), (28, 20), (29, 21)]
visited: [(28, 22), (28, 23), (27, 22), (28, 21), (29, 22), (28, 24),(27, 23), (29, 23), (26, 22), (27, 21)]
New List: [(27, 21), (29, 21)]
Current Queue: [(28, 21), (29, 22), (28, 24), (27, 23), (29, 23), (26, 22), (27, 21), (27, 21), (29, 21)]
上面的新列表表示可以添加的新节点(不是重复的)问题是...复制的确实会被添加。下面是我的乱七八糟的代码:
func findUniqeTuples(A: [(x:Int,y:Int)], B: [(Int,Int)]) -> [(Int,Int)] {
var indexArray:[Int] = []
for element in A { // visited
var count = 0
for items in B { // walkable
if element.0 == items.0 && element.1 == items.1{
indexArray.append(count)
}
count++
} // end for
}// end for
var array = B
for i in indexArray{
array.removeAtIndex(i)
}
return array
}
这是因为您正在按随机顺序移除带有索引的元素。移除前面的元素会使要移除的其余元素移位,因此索引指示错误的元素。以下内容将对您有效。
for (i, e) in enumerate(B) {
for items in A {
if e.0 == items.0 && e.1 == items.1 {
indexArray.append(i)
}
}
}
var array = B
for i in reverse(indexArray) {
array.removeAtIndex(i)
}
在Swift 2.0中,reverse
和enumerate
现在都被定义为方法,因此应该是:
for (i, e) in B.enumerate() { /* ... */ }
和
for i in indexArray.reverse() { /* ... */ }
我有以下数组列表 现在我需要比较这两个数组,并检查是否有id中的任何值存在于empIds中。如果是,我需要以布尔值true退出。我是这样做的。 但这需要很多时间。有人能帮我优化一下吗?
我有两个表,分别是产品和采购: PRODUCTS表-将获得购买的所有新产品。这意味着表prroducts中不存在相同的productname。所有独特产品列表 采购表-具有唯一purchase_id的所有采购产品的列表。 > 如果要在PURCHASE中添加或插入值,表PRODUCTS将获得PURCHASE的所有值,但前提是PURCHASE中的productname不存在于PRODUCTS中的'pr
这与Java比较两个列表的不同之处在于,我需要能够在jUnit中断言相等性,而不仅仅是比较列表。
我有一个关于列表比较器的问题。我有一个带有表格的网页应用程序。我可以在这个表格中编辑数据,也可以删除行。当我编辑数据时,标准比较器工作正常,但当我删除行时,我有问题。这个问题很常见(我想),当我删除一行时,javers比较旧列表和现在的列表时,看起来是这样的:旧列表有两个对象,现在列表有一个对象(我删除了第一个),现在javers不知道哪个对象被删除了,他比较旧列表中的第一个对象和新列表中的第二个
我必须将元组与元组列表进行比较,如果整数小于列表中的任何元组,则返回True。例如,如果我有将返回True,因为单独元组(“番茄”,10,5)中的整数比列表中的元组(“橙色”,11,6)小,但是如果我有将返回False。 我试试这个 但不工作时,它应该返回假,我不知道为什么? 注意:字符串对于这个问题并不重要,我必须忽略它。
问题内容: 比较两个NumPy数组是否相等的最简单方法是什么(其中相等定义为:对于所有索引i:,A = B iff )? 简单地使用就会给我一个布尔数组: 我是否必须确定该数组的元素是否相等,或者是否有更简单的比较方法? 问题答案: 测试数组(A == B)的所有值是否均为True。 注意:也许您还想测试A和B形状,例如 特殊情况和替代方法 (来自dbaupp的回答和yoavram的评论) 应当指