这是包含输入的完整Java代码。
LeetCode:1.两数之和(Two Sum)
题解与思路
方法一:
import java.util.*;
/**
* 在这里给出对类 LC1TwoSum 的描述。
* LC1-暴力
* @作者(yequan17)
* @版本(2021.12.5)
*/
public class LC1TwoSum
{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String[] str=sc.nextLine().replace("[","").replace("]","").split(",");
int[] nums=new int[str.length];
for(int i=0;i<nums.length;i++){
nums[i]=Integer.parseInt(str[i]);
}
int target=sc.nextInt();
int[] result=twoSum(nums,target);
System.out.print("["+result[0]+","+result[1]+"]");
sc.close();
}
public static int[] twoSum(int[] nums,int target){
int n=nums.length;
int[] result=new int[2];
for(int i=0;i<n-1;i++){
for(int j=i+1;j<n;j++){
if(nums[j]==target-nums[i]){
result[0]=i;
result[1]=j;
break;
}
}
}
return result;
}
}
方法二
import java.util.*;
/**
* 在这里给出对类 LC1TwoSum2 的描述。
*
* @作者(yequan17)
* @版本(2021.12.5)
*/
public class LC1TwoSum2
{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String[] str=sc.nextLine().replace("[","").replace("]","").split(",");
int[] nums=new int[str.length];
for(int i=0;i<nums.length;i++){
nums[i]=Integer.parseInt(str[i]);
}
int target=sc.nextInt();
int[] result=twoSum(nums,target);
System.out.print("["+result[0]+","+result[1]+"]");
sc.close();
}
public static int[] twoSum(int[] nums,int target){
int n=nums.length;
int[] result=new int[2];
Map<Integer,Integer> hashtable=new HashMap<Integer,Integer>();
for(int i=0;i<n;i++){
if(hashtable.containsKey(target-nums[i])){
result[0]=hashtable.get(target-nums[i]);
result[1]=i;
}
hashtable.put(nums[i],i);
}
return result;
}
}
版权声明:本文为idler123原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。