gpt4 book ai didi

java - 如何检查除一个之外的所有数组值是否相同?

转载 作者:行者123 更新时间:2023-12-02 11:38:25 24 4
gpt4 key购买 nike

我目前有以下数组:

int[] gameState = {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2};

我在开始时将 2 设置为“未播放”,当用户执行某些操作时,它会调用一个方法并将该数组值更改为 1,如下所示:

int tappedCounter = Integer.parseInt(counter.getTag().toString());

if (gameState[tappedCounter] == 2) {

gameState[tappedCounter] = 1;

现在我想做的是在用户操作后检查数组是否只有一个不同的成员并执行某些操作(例如输出文本)。

如果数组是:

int[] gameState = {1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1};

用户执行上述操作,将其中一项更改为 1,数组变为如下所示:

int[] gameState = {1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};

它应该显示输出。如果这很重要,我会在 Android Studio 中执行此操作。

最佳答案

暴力方法会遍历整个数组并计算 2 的出现次数(只有找到第二个 2 时才会短路)。

更好的方法(特别是当数组的长度很大时)是维护一个 2 的计数器(初始化为数组的长度),并在每次数组的元素从 2 更改为 1 时递减它。这样你所要做的就是检查计数器是否等于 1。

关于java - 如何检查除一个之外的所有数组值是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48753261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com