leetCode:twoSum 两数之和 【JAVA实现】

2020-12-13 02:58

阅读:235

标签:return   https   pre   hashmap   code   turn   方式   名称   假设   

LeetCode 两数之和

给定一个整数数组,返回两个数字的索引,使它们相加到特定目标。

您可以假设每个输入只有一个解决方案,并且您可能不会两次使用相同的元素。

更多文章查看个人博客 个人博客地址:twoSum 两数之和 【JAVA实现】

方法一

使用双重循环两两相加判断是否等于目标值

public List twoSum2(int[] arr, int sum) {
        if (arr == null || arr.length == 0) {
            return new ArrayList();
        }
        List list = new ArrayList();

        for (int i = 0; i 
名称 结果
时间复杂度 O(n^2)
空间复杂度 O(1)

方法二

单层循环 增加hashMap 记录每个数或者记录每个数和目标值的差 来直接比较

public List twoSum(int[] arr, int sum) {
        if (arr == null || arr.length == 0) {
            return new ArrayList();
        }
        List st = new ArrayList();

        Map map = new HashMap();
        for (int i = 0; i  sum2(int[] nums, int target) {
        if (nums == null || nums.length  results = new ArrayList();
        
        Map map = new HashMap();
        for (int i = 0; i 

此方法增加一个空间复杂度,记录的方式可能有多种 都能达到目的,速度优于第一种

名称 结果
时间复杂度 O(n)
空间复杂度 O(n)

更多文章查看个人博客 个人博客地址:twoSum 两数之和 【JAVA实现】

leetCode:twoSum 两数之和 【JAVA实现】

标签:return   https   pre   hashmap   code   turn   方式   名称   假设   

原文地址:https://www.cnblogs.com/NiceCui/p/11062581.html


评论


亲,登录后才可以留言!