leetcode-两数之和

题目地址:

https://leetcode-cn.com/problems/two-sum/

关键点分析:
  • 题目比较简单, 暴力破解循环数组, 只有nums[i] + num[j] == target 就证明找到了相应的值, 将ij的下标进行返回即可. 复杂度O(n²)
  • 遍历一遍将遍历的数据进行缓存, 那么target - num[i]的值在缓存可以找到, 就证明找到了相应的值. 返回当前i的值以及缓存数据对应的下标即可.
硬循环
public int[] twoSum(int[] nums, int target) {
    for (int i = 0; i < nums.length; i++) {
        for (int j = i + 1; j < nums.length; j++) {
            if (nums[i] + nums[j] == target) {
                return new int[] {i, j};
            }
        }
    }
    return new int[] {0, 0};
}

cache版本
class Solution {
    public int[] twoSum(int[] nums, int target) {
        Map<Integer/*value*/, Integer/*index*/> cache = new HashMap<>();
        for (int i = 0; i < nums.length; i++) {
           if (cache.get(target - nums[i]) != null) {
               return new int[] {i, cache.get(target - nums[i])};
           }
           cache.put(nums[i], i);
        }
        return new int[] {0, 0};
    }
}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Python 方法一:用 Python 中 list 的相关函数求解num2 = target - num1,是否...
    清水离奚阅读 1,436评论 0 0
  • 所用语言:python 题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值...
    猎人1987阅读 1,139评论 0 0
  • 一,题目 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并...
    JayDroid阅读 4,088评论 2 52
  • 00001 两数之和 题目描述 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只...
    林昀熙阅读 3,973评论 0 1
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 12,239评论 16 22

友情链接更多精彩内容