안녕하세요, 저는 " @ 不 飞 的 小飞 驴"입니다.
1 정수 배열 nums와 정수 대상 값 대상이 주어지면 합계가 배열의 대상 값인 두 정수를 찾아 배열 첨자를 반환합니다.
예 :
nums = [2,7,11,15], target = 9가 주어지면 nums
[0] + nums [1] = 2 + 7 = 9이므로
[0,1]을 반환합니다.
가장 먼저 떠오르는 것은 첫 번째 요소와 다음 요소를 추가하여 목표 값과 같지 않은 경우 두 번째와 세 번째 요소와 같은지 확인하는 것입니다.
값을 키로 사용하고 아래 첨자를 값으로 사용하고, 배열을 탐색하고, 맵을 설정하고, 맵에 현재 대상 값이 포함되어 있는지 여부를 결정합니다. 현재 값이 있으면 직접 반환하고 그렇지 않으면 직접 반환합니다. .
따라서 나중에 코드를 작성할 것입니다. 이중 레이어 for 루프가있는 경우 맵을 고려하는 것이 좋습니다.
public int[] twoSum(int[] nums,int target){
Map<Integer,Integer> map=new HashMap<>();
for(int i=0;i<nums.length;i++){
if(map.containsKey(target-nums[i])){
return new int[]{
map.get(target-num[i]),i}
}
map.put(num[i],i);
}
return new int[]{
0,0};
}