Java da Bir Sayının Dizideki İki Sayının Toplamı İle Bulunması

Java

Bir integer dizisinde ki iki sayının toplanarak önceden belirtilmiş bir sayıya eşit olup olmayacağını bulan algoritma.

Örnek olarak
Sayı Dizimiz = {2, 7, 11, 15}, hedef=9 olursa algoritmamız bize 0 ve 1’i verecektir.
Bu verilen değerler dizideki iki sayının toplanarak hedef’i oluşturan sayıların dizideki yeridir.

Bu problemi çözmek için kullanılan Java için en iyi yöntemlerden birisi HashMap kullanmaktır.
Dizideki elemanlar döngüye sokulur ve toplama işleminin sayıyı vermesi durumuna karşılık dizideki sayıların yerleri
HashMap’de tutulmaktadır.

public int[] twoSum(int[] nums, int target) {
    if(nums==null || nums.length<2)
        return new int[]{0,0};
 
    HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
    for(int i=0; i<nums.length; i++){
        if(map.containsKey(nums[i])){
            return new int[]{map.get(nums[i]), i};
        }else{
            map.put(target-nums[i], i);
        }
    }
 
    return new int[]{0,0};
}

Algoritma Karşılıklılığı O(n)

kaynak: https://www.programcreek.com/2012/12/leetcode-solution-of-two-sum-in-java/


Similar Posts:
  1. Java Annotations
  2. Java Covariant Return Type
  3. Java Enum

Tags: java, java algoritma, java dizi, java sayı algoriması