Öyleyse, derslerime örnek olmak için bat.com'u kodlamada yapıyorum ve sorunlardan birine bakarak sıkışıp kaldım. Neden döngü-içi koşul deyiminde uzunluk-2 yapıyorlar? 2 neden çıkarmamız gerektiğini anlamıyorum, belki burada birileri bunu açıklayabilir. Bunu bilmiyorum çok basit bir şey biliyorum. Teşekkürler!Diziler için for döngüsüyle (java) sıkışmış. [i], [i + 1], [i + 2]
Soru: `
Given an array of ints, return true if .. 1, 2, 3, .. appears in the array somewhere.
array123({1, 1, 2, 3, 1}) → true
array123({1, 1, 2, 4, 1}) → false
array123({1, 1, 2, 1, 2, 3}) → true`
Çözüm: IndexOutOfBound istisna değil amacıyla
public boolean array123(int[] nums) {
// Note: iterate < length-2, so can use i+1 and i+2 in the loop
for (int i=0; i < (nums.length-2); i++) {
if (nums[i]==1 && nums[i+1]==2 && nums[i+2]==3) return true;
}
return false;
}
Sorunuzdaki yorumlara yorumunuz zaten yanıtlanmıştır. Nums.length kullanırsanız, bir ArrayIndexOutOfBoundsException ile sonuçlanırsınız. – RubioRic
Yani i + 1 ve i + 2'yi kullanabileceğinizi söylüyor ancak bu bana açıklık getirmiyor. Üzgünüm, yeni başlayan biriyim. Neden ArrayIndexOutOfBounds istisnasıyla sonuçlandığımı bilmek istiyorum, istediğim buydu. – rcv6000
Dizide yalnızca üç sayınız varsa, nums.length 3 olacaktır. Döngünün i olduğu 1 iterasyonunda, [i + 2] sayılarına erişmeye çalışırsanız, num [3'e erişmeye çalışıyorsunuz demektir. ] dizinizde mevcut olmayan bir konum. Üç uzunluklu bir dizide sadece 0, 1 ve 2 konumlarına sahipsiniz. – RubioRic