题目:https://leetcode-cn.com/problems/two-sum/description/
import java.util.Scanner;
public class Main_1 {
public static int[] twoSum(int[] nums,int t){
//int[] JG=new int[2];
for(int i=0;i<nums.length;i++){
for(int j=i+1;j<nums.length;j++){
if(nums[i]+nums[j]==t){
return new int[]{i,j};//第一个数组元素是i,第二个j
}
}
}
throw new IllegalArgumentException("No two sum solution");
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] nums = new int[6];//自己定的数值长度6
int target;
while(input.hasNext()){
for(int i=0;i<6;i++)
nums[i]=input.nextInt();
target = input.nextInt();
int[] two = twoSum(nums,target);
System.out.println(two[0]+" "+two[1]);
}
}
}
学到的点:
- 函数写法 public int[] twoSum(int[] nums, int target)
- 但在编写的时候提示应该加上static;
- static作用:(方法,变量)不依赖于任何对象,独立的;方法中不会有this;
- 但在编写的时候提示应该加上static;
- return new int[]{i,j};
- 第一次看到这样的返回值,直接在return里面new数组,很帅气,直接第一个第二个就是了
动态数组Arraylist
- 一开始纠结于不知道容量大小可不可以用;但是发现在这道题中也还是不可以,因为后面要输入target,在这里没有区别出target和数组的界限,所以ArrayList不是一个好选择;
- 简单例子,了解array
//Java动态数组的初始化
ArrayList al=new ArrayList();
//向Java动态数组中添加数据
al.add("a");
al.add("b");
al.add("c");
//输出Java动态数组
for(int i=0;i<al.size();i++) {
String alEach=(String)al.get(i);
System.out.println(alEach);
}
//删除数组中的某个元素,删除第二个元素
al.remove(1);
//修改Java动态数组,把新的元素放到第二个位置
al.add(1,"2");
哈希表的检索
- throw new IllegalArgumentException(“No two sum solution”);//抛出非法数据异常
ps:发现这个网站很好的一点就是他会给你解释,帮助你理解,而不是你一个人的答案,想不出来可能就放弃了,很赞(。・∀・)ノ