你能告诉我这两种逻辑的区别吗?第一逻辑解决所有问题,而第二逻辑解决一半问题? 你能告诉我第一个逻辑不起作用吗?有什么区别
第一逻辑:
String out = "YES";
for(int j = 0; j< size-1; j++)
{
long difference = Math.abs(array[j+1] - array[j]);
if(difference > value)
{
out = "NO";
break;
}
}
System.out.println(out);
第二逻辑:
String out = "NO";
for(int j = 0; j< size-1; j++)
{
long difference = Math.abs(array[j+1] - array[j]);
if(difference <= value)
{
out = "YES";
}
else
{
out = "NO";
break;
}
}
System.out.println(out);
这里是我解决了这个问题 - >
您给出整数和你的数组需要确定任何两个连续数组整数值的绝对差值是否为在最D.
输入:
输入的第一行包含一个整数T,表示的测试用例的数量。你必须为每个测试用例提供输出。每个测试用例都包含数组的大小(N),必须检查的绝对值差异(D)以及数组本身的值。 每个测试用例的第一行包含两个整数N和D,分别表示数组的大小和D的值。 每个测试用例的第二行包含N个整数,它们被一个空格分开,并且是整数。
输出:
对于每一个测试的情况下,打印YES如果任何两个连续整数之间的绝对差为最d,否则打印NO。
限制条件:
不会有超过1000个测试用例。阵列的大小也不会大于1000和d的值将是1和100之间的数组中的整数的值将是1和106
= T 之间
< = 103= ñ< = 103
= d < = 100
=元素阵列的< = 106
第一逻辑解决所有的测试用例但第二逻辑只解决一半的测试用例,以便第一个逻辑失败?
第二个不会编译。所以就是这样。 –
你在说什么测试用例?如果你知道什么样的测试失败了,你不知道第一个代码缺乏什么吗?毕竟那是什么测试用例。 –
均顺利编译,唯一不同的是首先为所有情况提供解决方案,而第二个仅为半个情况提供解决方案 – hEmAnT