package com.plat.acoal.leetcode;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Stream;
public class TwoNumberSum {
static class Solution{
public int[] twoSum(int[] nums,int target){
for(int i=0;i<nums.length;i++){
for(int j=1;j<nums.length;j++){
if(nums[j]==target-nums[i]){
return new int[]{i,j};
}
}
}
throw new IllegalArgumentException("no such solution");
}
}
static class Solution2{
public int[] twoSum(int[] nums,int target){
Map<Integer,Integer> map=new HashMap<Integer,Integer>();
for(int i=0;i<nums.length;i++){
map.put(nums[i],i);
}
for(int i=0;i<nums.length;i++){
int complement=target-nums[i];
if(map.containsKey(complement)&&map.get(complement)!=i){
return new int[]{nums[i],complement};
}
}
throw new IllegalArgumentException("NO Such sum");
}
}
static class Solution3{
public static int[] twoSum(int[] nums,int target){
Map<Integer,Integer> map=new HashMap<Integer, Integer>();
for(int i=0;i<nums.length;i++){
int complement=target-nums[i];
if(map.containsKey(complement)){
return new int[]{map.get(complement),i};
}
map.put(nums[i],i);
}
throw new IllegalArgumentException("no two num");
}
}
public static void main(String[] args) {
Solution3 solution3=new Solution3();
int[] a=solution3.twoSum(new int[]{1, 2, 4},3);
System.out.println(Arrays.toString(a));
}
}
两数之和 Leetcode Java
猜你喜欢
转载自blog.csdn.net/qq_35097794/article/details/105153604
今日推荐
周排行