Dictionary 在字典中找到最小的数字
我想在我的字典里找到一个最小的也是假的数字。我也在使用新的Swift语言。我怎样才能做到这一点Dictionary 在字典中找到最小的数字,dictionary,boolean,swift,Dictionary,Boolean,Swift,我想在我的字典里找到一个最小的也是假的数字。我也在使用新的Swift语言。我怎样才能做到这一点 var firstRow = [1: false, 2: false, 3: false, 4: false, 5: false, 6: false] for (number, bool) in firstRow { if bool == false { // NSLog("\(number)")
var firstRow = [1: false, 2: false, 3: false, 4: false, 5: false, 6: false]
for (number, bool) in firstRow {
if bool == false {
// NSLog("\(number)")
for i = number; i > 0; i-- {
if number <= smallest {
smallest = number
NSLog("\(smallest)")
}
}
// NSLog("\(bool, number)")
}
}
var firstRow=[1:false,2:false,3:false,4:false,5:false,6:false]
对于第一行中的(数字,布尔){
如果bool==false{
//NSLog(“\(编号)”)
对于i=number;i>0;i--{
如果数字在这里:
var smallest = 10000000000
for (number, bool) in firstRow {
if bool == false && number < smallest{
smallest = number
}
}
println("\(smallest)")
var最小值=1000000000
对于第一行中的(数字,布尔){
如果bool==false&&number<最小值{
最小=数量
}
}
println(“\(最小)”)
如果您严格使用Swift,我会在添加更改时使用ASKASK:
let firstRow = [1: true, 2: false, 3: true]
var smallest = Int.max
for (number, bool) in firstRow {
if bool == false && number < smallest {
smallest = number
}
}
Swift中的数组上有一个内置的filter()
方法,因此我会使用如下方法:
let falseNumbers: Int[] = firstRow.keys.filter { firstRow[$0] == false }
let smallestFalseNumber: Int = sort(falseNumbers)[0]
上述假设在firstRow
字典中至少有一个假值。为确保:
if find(firstRow.values, false) {
// The above code
}
您可以使用内置的min(by:)方法,使用key或dictionary中的value获取最小值
let minmum = firstrow.min { a, b in
return a.value < b.value
}
// use minimum object to print key and value
print(minimum.key)
print(minimum.value)
让minmum=firstrow.min{a,b在
返回a.value
为什么要使用字典而不是数组?整个内部循环做什么?!我想将数字与布尔关联为什么不使用布尔数组?你知道数组是什么吗?你可能想将最小的更改为UInt8.maxValue()
为什么UInt8?它的最大值不是只有255吗?@ASKASK或typeOfNumbersInArray.maxValue()
255井就足够了anyway@BrianTracy是对的,也是错的-应该是var minimate=Int.max
,不需要猜测正确的大值。你建议手工排序表格?为什么不直接手工排序,然后只说minimate=2?一点也不…我建议如果我们知道如何使用严格递增的整数将成员推送到集合中,我们利用其中一个有序数据结构,这样我们就可以打破搜索,确信我们已经找到了最小的数目;在任何情况下,看起来这里有几个选项,我肯定其中一个已经结束我的意思是,如果我们知道成员将被推到集合中使用严格递增的整数”--呃,也称为“排序”。就像我说的,手动排序…这是你“事先知道”的唯一方法数据被排序而不必排序。因为OP没有说这是可以保证的,所以我将省略这个中断。希望苹果会向他们的集合库中添加功能设施(如果他们还没有),这样你就可以像在其他现代语言中一样说minimest=firstRow.min({$0.1==false})。
let minmum = firstrow.min { a, b in
return a.value < b.value
}
// use minimum object to print key and value
print(minimum.key)
print(minimum.value)