Two Sum算法
来源:互联网 发布:局域网设置域名 编辑:程序博客网 时间:2024/06/01 22:09
①算法描述:Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1].
解决方法:
一:使用java for循环,暴力搜索方式
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[j] == target - nums[i]) { return new int[] { i, j }; } } } throw new IllegalArgumentException("No two sum solution");}
二:使用Hashmap,将时间复杂度减小到O(n)
public class Solution{ public int[] twoSum(int[] nums, int target) { Map<Integer,Integer> map=new HashMap<>(); for(int i=0;i<nums.length;i++) { map.put(nums[i],i); } for(int j=0;j<nums.length;j++) { int complements=target-nums[j]; if(map.containsKey(complements)&&map.get(complements)!=j) { return new int [] {j,map.get(complements)}; } } throw new IllegalArgumentException("No two sum solution");} }
阅读全文
0 0
- 算法系列--Two Sum
- Two sum算法
- Two Sum算法
- 算法2 Two Sum
- 每日算法之一:Two Sum
- 【LetCode算法修炼】Two Sum
- LeetCode的算法题1:Two Sum
- 【LeetCode 1】算法修炼 --- Two Sum
- leetcode算法训练#1 Two Sum
- leetcode算法题总结之Two Sum
- 简单算法题之 Two Sum
- Leetcode算法题(1)Two Sum
- LeetCode算法分析1.Two Sum
- LeetCode算法(Python)--1、Two Sum
- LeetCode算法题——Two Sum
- 算法系列——Two Sum II
- 算法系列——Two Sum
- 算法学习笔记--1. Two Sum
- RaspberryPi 3B型-超声波测距
- 羊皮卷之一
- 求二叉树叶子节点的个数/求二叉树第k层的节点个数
- hdu 2098
- 链表求和(容易)
- Two Sum算法
- c++static
- 判断Number数值类型
- Python3 类
- 线程的一种解决死锁的方式
- 77 Combinations(组合数)
- 自动装配、JavaConfig、XML 三种方案之间,怎么导入和混合配置?
- Struts2知识点回顾(二)Struts2项目准备和配置文件结构
- 笔试题2