Java算法1-阿里云开发者社区

开发者社区> 人工智能> 正文

Java算法1

简介: 算法 Two Sum 问题: 给定一数组与一个期望值, 获取期望值可由数组中哪两个值相加得到.示例: 输入: nums=[2, 7, 11, 15], target = 9; 输出: [0, 1]分析: 以下实现的时间复杂度为O(n), 空间复杂度O(n) public int[] twoSum(.

随手记录点算法~
在线算法地址LeetCode

算法

Two Sum

问题: 给定一数组与一个期望值, 获取期望值可由数组中哪两个值相加得到.
示例: 输入: nums=[2, 7, 11, 15], target = 9; 输出: [0, 1]
分析: 以下实现的时间复杂度为O(n), 空间复杂度O(n)

public int[] twoSum(int[] nums, int target) {
    Map<Integer, Integer> map = new HashMap<>();
    for (int i = 0; i < nums.length; i++) {
        int complement = target - nums[i];
        if (map.containsKey(complement)) {
            return new int[] { map.get(complement), i };
        }
        map.put(nums[i], i);
    }
    throw new IllegalArgumentException("No two sum solution");
}

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
人工智能
使用钉钉扫一扫加入圈子
+ 订阅

了解行业+人工智能最先进的技术和实践,参与行业+人工智能实践项目

其他文章