如果一个大小为9的数组有从1到9的数字,那么你们认为一个好的算法应该如何检查(返回true),但是它们可能会被排序。
我在考虑创建一个已经用整数1到9初始化的数组V,然后将第一个数组的第一个元素与V的每个元素进行比较,如果匹配,则将V的元素替换为-1,然后当我们完成时,我们应该检查是否有一个充满-1的数组。你们对我的想法有什么看法?
谢谢!
发布于 2012-02-11 00:54:52
G29
发布于 2012-02-11 00:55:38
您可以使用按您希望看到的值进行索引的数组A。每个元素最初都是0,如果I是输入的元素,则将Ai设置为1,并递增计数器。最后,计数器需要为9。
发布于 2012-02-11 01:00:12
这里有一种方法:
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
}https://stackoverflow.com/questions/9231532
复制相似问题