Java学习笔记,LeetCode算法题1
一开始的错误提示
- 可以看到题目一开始已经标明了返回值得类型为整型数组,但却写成了返回两个整型数据,而且return一次只能返回一个元素(一个整型,一个数组都行)。 1 return i,j;
- 见上。
- 一开始的代码是这样的 1 System.out.println(new Solution.twoSum(test,3)); 一个类里的方法要先new才能使用它,既然是类就得有(),而且这样输出数组只会显示数组的首地址,想要用Arrays.toString记得要引入包。如果想直接在里面应该写成这样。 1 System.out.println(Arrays.toString(new Solution().twoSum(test,3)));
- 要知道一个数组的长度用length就行了,length和length()的区别简单来说就是前者是知道数组有几个元素,后者是知道特定一个元素长度是多少。这里错是因为拼错了,写成了lenght,搞什么啊,注意拼写。
- 同上
- 简单说本代码是对两个整型的比较,而equals是object的方法,整形int没有继承Object,所以是用不了的。至于equals和==的区别,可以看https://blog.csdn.net/qq_36522306/article/details/80550210?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&dist_request_id=1328602.60967.16152158676065303&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control
- 见1
最终的代码
1 import java.util.Arrays; 2 3 public class Hello{ 4 public static void main(String args[]){ 5 int[] test = {1,2,3,4,5}; 6 System.out.println(Arrays.toString(test)); 7 Solution solution = new Solution();//先new,再用.用里面的方法 8 System.out.println(Arrays.toString(solution.twoSum(test,3))); 9 } 10 }
1 class Solution { 2 public int[] twoSum(int[] nums, int target) { 3 for(int i = 0;i < nums.length; i ++) { 4 int temp1 = nums[i]; 5 for(int j = i+1;j < nums.length; j++) { 6 int temp2 = nums[j]; 7 if((temp2+temp1) == target ) { 8 return new int[] {i,j}; 9 } 10 } 11 } 12 return new int[] {99,99};//随便写的数 13 } 14 }