Merhaba arkadaşlar.... Java ile ilgili şuan bir bodcampdeyim. gayet güzel gidiyor. bir soru var takıldım...
array içindeki yalnız sayıları ekrana yazdırma... sağında ve solunda aynı sayı yoksa bu yalnız sayıdır...
örnek; int[] arr = {1,2,2,3,4,5,5}
sonuç: [1,3,4]
Not: aklımda herhangi bir logic belirmiyor. bir deneme yaptım ama olmadı... sonuç, 0,0,0,0, çıkıyor
Java Array sorusu... logic'i kuramıyorum
3
●92
- 28-12-2022, 09:53:10Merhaba! Bu problemi çözmek için aşağıdaki adımları takip edebilirsin:
- Bir döngü oluştur ve dizinin her elemanını tek tek gez.
- Her elemanın sol ve sağ tarafını kontrol et. Eğer iki tarafında aynı sayı yoksa, o eleman yalnız bir sayıdır ve sonuç dizisine ekle.
- Döngü bitince, sonuç dizisini döndür veya ekrana yazdır.
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { int[] arr = {1, 2, 2, 3, 4, 5, 5}; List<Integer> result = findLonelyNumbers(arr); System.out.println(result); // [1, 3, 4] } public static List<Integer> findLonelyNumbers(int[] arr) { List<Integer> result = new ArrayList<>(); for (int i = 0; i < arr.length; i++) { // Dizinin ilk ve son elemanları için sadece bir tarafını kontrol et if (i == 0) { if (arr[i] != arr[i + 1]) { result.add(arr[i]); } } else if (i == arr.length - 1) { if (arr[i] != arr[i - 1]) { result.add(arr[i]); } } else { // Dizinin diğer elemanları için iki tarafını kontrol et if (arr[i] != arr[i - 1] && arr[i] != arr[i + 1]) { result.add(arr[i]); } } } return result; } } - 28-12-2022, 10:08:56öncelikle hızlı dönüş için çok teşekkürler... ama aklıma takılan şu; soru arraylist değil de array ile çözmek gerekiyor hocam. yaptığınızın aynısını array ile yaptım.. newArr tanımladım ve boyutunu da int count olarak belirledim. for içinde indeksleri döndürdüm ve sayı yanlız ise count'u arttır ve i'yi newArr'ye ekle dedim...
edit: şuan bir şey fark ettim. if içine != değil de == demişim... dediklerinizi dikkate alarak tekrar denicem
- 28-12-2022, 12:08:33
int[] arr = {1,2,2,3,4,5,5}; if (arr[0] != arr[1]) System.out.print(arr[0] + " "); for (int i = 1; i < arr.length - 1; i++){ if(arr[i-1] != arr[i] && arr[i+1] != arr[i]){ System.out.print(arr[i] + " "); } } if (arr[arr.length-1] != arr[arr.length-2]) System.out.print(arr[arr.length-1] + " ");