这是一道很早很早之前做的题。也是力扣里面的一道简单题。但是对于菜得不能再菜的小白我,简直虐我千百遍。呜呜呜
class Helloworld {//Helloworld是个类名
public int[] twosum(int[] nums,int target){//public 是个公共类
Map<Integer,Integer> map=new HashMap<>();//hashmap使用泛型
for(int i=0;i<nums.length;i++){
map.put(nums[i],i);//hashmap.put方法 map.put(key,value) k,v可以是多种类型
}
for(int i=0;i<nums.length;i++){
int complement=target-nums[i];//目标的数减去遍历数等于存在数。
if(map.containsKey(complement)&&map.get(complement)!=i){
//map.containsKey()方法检验map集合中存在数是否存在,get方法找出存在数不是遍历数
return new int[]{i,map.get(complement)};//返回两个变量的方法
}
}
throw new IllegalArgumentException(“No two sum solution”);//抛出异常
}
}
还要再new一个test类
package com.atguigu.java;//使用同一个package
public class Test {
public static void main(String[] args){
Helloworld sou=new Helloworld();//创建对象
int[] n={11,33,55,77};//创建数组
int arr[]=sou.twosum(n,44);
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}
记得要同一个Package
老鸭子,有误的地方或有补充的地方尽管告诉我吧。我一定纠正过来!