首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一种算法,用于检查数组(有9个位置)是否包含从1到9的整数,与它们的排序方式无关

一种算法,用于检查数组(有9个位置)是否包含从1到9的整数,与它们的排序方式无关
EN

Stack Overflow用户
提问于 2012-02-11 00:52:35
回答 9查看 1.4K关注 0票数 2

如果一个大小为9的数组有从1到9的数字,那么你们认为一个好的算法应该如何检查(返回true),但是它们可能会被排序。

我在考虑创建一个已经用整数1到9初始化的数组V,然后将第一个数组的第一个元素与V的每个元素进行比较,如果匹配,则将V的元素替换为-1,然后当我们完成时,我们应该检查是否有一个充满-1的数组。你们对我的想法有什么看法?

谢谢!

EN

回答 9

Stack Overflow用户

发布于 2012-02-11 00:54:52

  1. 在函数中创建BitSet
  2. 通过传递的向量进行迭代,使用该值作为BitSet
  3. 中的位置如果位置已经设置,它是dup,因此返回false
  4. 如果在末尾,并且代码的长度为9,则返回TRUE...

G29

票数 2
EN

Stack Overflow用户

发布于 2012-02-11 00:55:38

您可以使用按您希望看到的值进行索引的数组A。每个元素最初都是0,如果I是输入的元素,则将Ai设置为1,并递增计数器。最后,计数器需要为9。

票数 2
EN

Stack Overflow用户

发布于 2012-02-11 01:00:12

这里有一种方法:

代码语言:javascript
复制
public static boolean check1_9(int arr[]) {
    if (arr == null || arr.length != 9) {
        return false;
    }
    int mask = 0;
    for (int val : arr) {
        mask |= (1 << val);
    }
    return mask == (1 << 10) - 2; // true iff bits 1..9 are set
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9231532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档