我想寫一個簡單的算法來識別整數的ArrayList
中第一個丟失的實數。我很難編寫邏輯。觀察我的代碼片段:在序列中查找缺失數字的邏輯是什麼?
// suppose sequence is a valid sorted ArrayList
int match = 0;
int first = sequence.get(0); // sets the first value in seq. to var
int size = sequence.size(); // sets the seq size to var
for (int i = 0; i < size; i++)
{
if (i != sequence.get(i) && i > first)
match = i; // it is not in the sequence
}
System.out.println(match + " is not in the sequence.");
如果序列4, 5, 8, 9
我預計match
是6
。相反,我得到0
。幫幫我?
對於你的榜樣,你會希望它也匹配7?序列總是會增加1嗎? – PlasmaPower
可能是因爲'我'只是一個int 0,1,2,3。它甚至不會達到'4',因此它不可能超過序列中的任何值。 –
@PlasmaPower否和N/A。它只需要找到第一個缺失值,並且序列可以是任何已排序的整數列表。 – Elliott