JAVA1031 NUM求和



class Solution {public int[] twoSum(int[] nums, int target) {for(int i=0;i<nums.length;i++){
for(int j=0;j<=i;j++)
{if(nums[j]+nums[i]==target)
System.out.println("nums[j]");
System.out.println("nums[i]");
return j;}return i; }}
}
创建数组
// 方法1:直接初始化
int[] numbers = {1, 2, 3, 4, 5};
String[] names = {"Alice", "Bob", "Charlie"};// 方法2:使用 new 关键字
int[] numbers = new int[5]; // 创建长度为5的数组,默认值0
String[] names = new String[3]; // 创建长度为3的数组,默认值null// 方法3:先声明后初始化
int[] numbers;
numbers = new int[]{1, 2, 3, 4, 5};



class solution {public int[] twoSum(int[] nums, int target) {for (int i=0;i<nums.length;i++){for(int j=0;j<=i;j++){ if (nums[j]+nums[i]==target)System.out.println("nums[j]");System.out.println("nums[i]");return new int[]{j};}return new int[]{i}; }return nums;}}
public void main(String[] args){//初始化数组//先想思路,看题解,思路对不对,再写//没思路直接看题解}

错误


public class Solution2 {public int[] twoSum(int[] nums, int target) {int[] ans = 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] == target) {ans[0] = i;ans[1] = j;return ans; // 找到结果立即返回}}}return ans; // 如果没有找到,返回初始数组}
}
for(int i = 0; i< nums.length; i++) {if(map.containsKey(target - nums[i])) {return new int[] {map.get(target-nums[i]),i};}作者:画手大鹏
链接:https://leetcode.cn/problems/two-sum/solutions/6873/jie-suan-fa-1-liang-shu-zhi-he-by-guanpengchn/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


为什么会报错
map.get(target-nums[i])方法是获得map的key值吗?
if(map.containsKey(target - nums[i])) {return new int[] {map.get(target-nums[i]), i};// ↑// 这里获取的是value(索引),不是key(数值)
}
