leetCode第一题

leetCode第一题

普通解决思路

将数组变量两次,相加判断是否等于传过来的值,如果等于,返回下标
自己写的代码,如果有错误请指出,谢谢

package com.leetcode.firstquestion.one;

import java.util.Arrays;

/**
 * @program: test
 * @description: 两数之和 给定一个整数数组 nums 和一个目标值 target,
 *                       请你在该数组中找出和为目标值的那
 *                       两个 整数,并返回他们的数组下标。
 * @author: Mr.Yang
 * @create: 2019-05-08 09:20
 **/
public class Solution {
    public int[] twoSum(int[] nums, int target) {
        int[] ints = new int[2];
        int indexOne=0;
        int indexTwo=0;
        boolean flag=false;
        for(int x=0;x

网上流传思路,使用HashMap来处理

将数组的遍历值当作key(为了存取好处理,所以将数组的遍历值当作key),索引当作value来存储。

package com.leetcode.firstquestion.two;

import java.util.Arrays;
import java.util.HashMap;

/**
 * @program: test
 * @description: 两数之和 给定一个整数数组 nums 和一个目标值 target,
 *                       请你在该数组中找出和为目标值的那
 *                       两个 整数,并返回他们的数组下标。
 * @author: Mr.Yang
 * @create: 2019-05-08 09:20
 **/
public class Solution {
    public int[] twoSum(int[] nums, int target) {
        HashMap argsMap = new HashMap<>();
        for(int i=0;i
  • 相比较自己写的那个确实要好得多,自己那个需要遍历两次,简单时间复杂度O(n2)
  • 网上的方法,简单时间复杂度O(n)

大家可以关注我的公众号-JAVA知识总结与分享,我们一起来学习,共同进步

你可能感兴趣的:(leetCode第一题)