• 28-12-2022, 09:42:43
    #1
    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
  • 28-12-2022, 09:53:10
    #2
    Merhaba! Bu problemi çözmek için aşağıdaki adımları takip edebilirsin:
    1. Bir döngü oluştur ve dizinin her elemanını tek tek gez.
    2. 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.
    3. Döngü bitince, sonuç dizisini döndür veya ekrana yazdır.
    Aşağıda bir örnek Java kodu veriyorum. Bu kodda, dizi elemanlarının sol ve sağ tarafını kontrol ederek yalnız sayıları bulan bir fonksiyon yazdım. Bu fonksiyonu çağırarak problemi çözebilirsin:
    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;
        }
    }
    • fulbaibu
    fulbaibu bunu beğendi.
    1 kişi bunu beğendi.
  • 28-12-2022, 10:08:56
    #3
    ö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
    #4
    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] + " ");