Java,如果数组中的“x”紧挨着“y”,则返回true
我想,这是一个非常简单的问题,我无法解决 数组包含一个整数列表,如果数组中的每个数字“x”后跟数字“y”,我想返回true 所以带有{x,3,4,y}或{x,x,y,4,5}或{5,8,x,x}的数组是假的 而带有{x,y,4,1}或{x,y,5,1,x,y}的数组则为真 这就是我迄今为止所尝试的:Java,如果数组中的“x”紧挨着“y”,则返回true,java,arrays,Java,Arrays,我想,这是一个非常简单的问题,我无法解决 数组包含一个整数列表,如果数组中的每个数字“x”后跟数字“y”,我想返回true 所以带有{x,3,4,y}或{x,x,y,4,5}或{5,8,x,x}的数组是假的 而带有{x,y,4,1}或{x,y,5,1,x,y}的数组则为真 这就是我迄今为止所尝试的: for (int i = 0; i < nums.length-1; i++) { if (nums[i] == x && nums[i+1] == y) {
for (int i = 0; i < nums.length-1; i++)
{
if (nums[i] == x && nums[i+1] == y)
{
return true;
}
else
{
return false;
}
}
return false;
但是,我的代码只适用于数组中的前两个元素,即0和1。它不会在数组中进一步检测到任何整数,那么我该怎么做呢
多谢各位
如果数组中的每个数字“x”后跟数字“y”,我想返回true
您需要删除else并修改检查,如下所示:
for (int i = 0; i < nums.length - 1; i++)
{
if (nums[i] == x && nums[i + 1] != y)
{
return false;
}
}
return true;
注意事项:
如果数组中不存在x,则返回true。这个问题不清楚这是否是你想要的行为。
这不会检查x是否是数组的最后一个元素。同样,如果是这样的话,你还不完全清楚你会期望发生什么。
如果“x”号后面没有“y”,则此代码将返回False 当代码到达return语句时,它停止执行函数并返回指定的值,这就是为什么for只执行一次 由于希望将条件应用于数组中的所有元素,因此当发现2后面没有3时,必须返回false。如果2后面跟着3,您只需继续检查下一个位置 像这样:
for (int i = 0; i < nums.length-1; i++)
{
if(nums[i] == 2 && nums[i+1] != 3)
{
return false;
}
}
return true;
您的代码总是在第一次迭代中返回。因为您已经在If和else块中写入了return 移除else盒或仅移除退货;如果里面有任何其他逻辑,则从else case开始
int x = 2;
int y=3;
for (int i = 0; i < nums.length-1; i++) {
if (nums[i] == x && nums[i+1] != y) {
return false;
}
}
return true;
如果数组中没有x,它将返回true。如果有任何x后面没有y,它将返回false。请尝试以下操作
boolean flag = false;
for (int i = 0; i <= (nums.length-1); i++) {
if(nums[i] == x) {
if (i == (nums.length-1)) {
if(nums[i] == x) {
flag = false;
}
} else {
if(nums[i+1] == y) {
flag = true;
} else {
flag = false;
break;
}
}
}
}
return flag;
您可以尝试以下方法:
if(nums[nums.length - 1] == x)
{
return false;
}
else
{
boolean flag = false;
for(i = 0; i < nums.length - 1; i++)
{
if(nums[i] == x)
{
if(nums[i + 1] == y)
{
flag = true;
}
else
{
flag = false;
break;
}
}
}
return flag;
}
实际上,我不明白为什么根据您的要求在第二个数组上返回true:数组中的第二个2后面没有2。如果我指向最后一个元素并且nums[I]=2,则此代码可能会抛出ArrayIndexOutofBoundException。必须进行绑定检查如果我指向最后一个元素且nums[i]=2,则此代码可能会抛出ArrayIndexOutofBoundException。必须进行绑定检查我不确定如何进行,因为我
int x = 2;
int y=3;
for (int i = 0; i < nums.length-1; i++) {
if (nums[i] == x && nums[i+1] != y) {
return false;
}
}
return true;
boolean flag = false;
for (int i = 0; i <= (nums.length-1); i++) {
if(nums[i] == x) {
if (i == (nums.length-1)) {
if(nums[i] == x) {
flag = false;
}
} else {
if(nums[i+1] == y) {
flag = true;
} else {
flag = false;
break;
}
}
}
}
return flag;
if(nums[nums.length - 1] == x)
{
return false;
}
else
{
boolean flag = false;
for(i = 0; i < nums.length - 1; i++)
{
if(nums[i] == x)
{
if(nums[i + 1] == y)
{
flag = true;
}
else
{
flag = false;
break;
}
}
}
return flag;
}