zoukankan      html  css  js  c++  java
  • 力扣1. 两数之和

    题目

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。
    你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

    示例:

    给定 nums = [2, 7, 11, 15], target = 9
    因为 nums[0] + nums[1] = 2 + 7 = 9
    所以返回 [0, 1]

    方式一

    解题思路:
    暴力法,直接双重循环。

    代码:

    public static int[] twoSum(int[] nums, int target) {
          int length = nums.length;
          int[] t = new int[2];
           for (int i = 0; i < length; i++) {
               int a = target - nums[i];
               for (int j = i + 1; j < length; j++) {
                   if (nums[j] == a) {
                      t[0] = i;
                       t[1] = j;
                       return t;
                   }
               }
           }
           return null;
       }
    

    方式二

    解题思路:
    使用HashMap,存放target减去nums数组中数字的结果。

    代码:

    public static int[] twoSum(int[] nums, int target) {
            HashMap<Integer, Integer> hashMap = new HashMap<>();
    
            int[] a = new int[2];
    
            for (int i=0;i<nums.length;i++){
    
                if (hashMap.containsKey(nums[i])){
                    a[0]=i;
                    a[1]=hashMap.get(nums[i]);
                    return a;
                }
                hashMap.put(target-nums[i],i);
    
            }
            return null;
        }
    
  • 相关阅读:
    EntityFramework系列:MySql的RowVersion
    EntityFramework系列:SQLite.CodeFirst自动生成数据库
    怎么回事呢?
    为蛇么不现实
    发布到个人主页
    作别
    budao 首页
    中午吃饱了
    作业写好了吗?
    分类
  • 原文地址:https://www.cnblogs.com/ghlz/p/13656966.html
Copyright © 2011-2022 走看看