importjava.util.Arrays;importjava.util.HashMap;importjava.util.Map;publicclassTwoSum{// Follow-up: Can you come up with an algorithm that is less than O(n2) time complexity?// O(n)publicstaticint[]twoSum(int[]nums,inttarget){int[]answer=newint[]{};Map<Integer,Integer>map=newHashMap<>();for(inti=0;i<nums.length;i++){// nums[n] + nums[m] = target// nums[m] = target - nums[n]// key ๊ฐ์ด target - nums[i]์ ํด๋น๋๋ index ์ ์ฅ ํ breakif(map.containsKey(target-nums[i])){answer=newint[]{map.get(target-nums[i]),i};break;}map.put(nums[i],i);// if ์กฐ๊ฑด์ ๋ง์ง ์๋ค๋ฉด key์ index ์ ์ฅ}returnanswer;}publicstaticvoidmain(String[]args){System.out.println(Arrays.toString(twoSum(newint[]{2,7,11,15},9)));System.out.println(Arrays.toString(twoSum(newint[]{3,2,4},6)));System.out.println(Arrays.toString(twoSum(newint[]{3,3},6)));}}
Leave a comment