【问题标题】:How to find a missing number from a list in Dart如何从 Dart 的列表中查找缺失的数字
【发布时间】:2021-06-12 20:41:44
【问题描述】:

如何从 Dart 语言的列表中查找缺失的数字

a=[1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12];

【问题讨论】:

  • 什么被认为是“缺失”?请在您的问题中提供更多详细信息并进行尝试。
  • 数字 7 不见了
  • 这真的没有帮助。我看到数字 7 丢失了,但是如果不了解所有可能的输入,就不可能生成考虑 all 情况的代码。如果你只是想每次都只为这个特定的数组查找 if 7,我现在可以告诉你,并说总是返回 false。
  • 但是包含数千个数字的大列表呢
  • 如果只是数学问题,请参阅codereview.stackexchange.com/questions/18424/…上的答案

标签: arrays list flutter dart numbers


【解决方案1】:
for(int num in a){
  if(a.contains(num+1) == false && a.last != num){
    return num+1
  }
   return null; // No missing value
}

假设您想在示例中找到 7,您可以执行以下操作。它检查是否提供了下一个值。还需要检查最后一个元素,因为lastElement+1 将始终不包含在数组中。

【讨论】:

    【解决方案2】:

    假设列表已排序,您可以使用:

    Iterable<int> findMissingInts(List<int> ints) sync* {
      for (var i = 0; i < ints.length - 1; i++) {
        for (var j = ints[i] + 1; j < ints[i + 1]; j++) {
          yield j;
        }
      } 
    }
    
    main() {
      print(findMissingInts([1,2,4,5,8])); //(3, 6, 7)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-23
      相关资源
      最近更新 更多