你能告訴我這兩種邏輯的區別嗎?第一邏輯解決所有問題,而第二邏輯解決一半問題? 你能告訴我第一個邏輯不起作用嗎?有什麼區別
第一邏輯:
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