11 Mayıs 2011, ÇARŞAMBA
Nasıl sıralanmış bir dizi içine iki sıralı diziler birleştirmek için?
Bu röportajda bana sorulan ve bu sana verilen çözümdür:
public static int[] merge(int[] a, int[] b) {
int[] answer = new int[a.length b.length];
int i = 0, j = 0, k = 0;
while (i < a.length && j < b.length)
{
if (a[i] < b[j])
{
answer[k] = a[i];
i ;
}
else
{
answer[k] = b[j];
j ;
}
k ;
}
while (i < a.length)
{
answer[k] = a[i];
i ;
k ;
}
while (j < b.length)
{
answer[k] = b[j];
j ;
k ;
}
return answer;
}
Daha verimli bir şekilde bunu yapmak için var mı?
Edit: Düzeltilmiş uzunluğu yöntemleri.
CEVAP
20 Ocak 2012, Cuma
public static int[] merge(int[] a, int[] b) {
int[] answer = new int[a.length b.length];
int i = 0, j = 0, k = 0;
while (i < a.length && j < b.length)
{
if (a[i] < b[j])
answer[k ] = a[i ];
else
answer[k ] = b[j ];
}
while (i < a.length)
answer[k ] = a[i ];
while (j < b.length)
answer[k ] = b[j ];
return answer;
}
Biraz daha kompakt ama tam olarak aynı!
Bunu Paylaş:
Nasıl PHP ilişkisel Dizi veya sıralı o...
Nasıl PHP belirli bir anahtar değeri i...
Nasıl belirli bir pozisyonda diziler i...
Nasıl iki sıralı diziler Birliği hazır...
Nasıl gelişmiş ifade, bir dizi için bi...