LeetCode——1.Two Sum
来源:互联网 发布:免费虚拟手机号软件 编辑:程序博客网 时间:2024/06/10 01:09
1.问题描述
任给一个整数数组num,一个目标值target,返回这样的一对下标[i,j],要求满足两个下标对应的数组值之和num[i]+num[j]等于target
2.算法介绍
2.1 时间复杂度为O(n^2)
双重循环,蛮力
public class Solution { public int[] twoSum(int[] nums, int target) { int result[]=new int[2]; for(int i=0;i<nums.length;i++){ for(int j=i+1;j<nums.length;j++){ if(nums[j]==target-nums[i]){ result[0]=i;result[1]=j; return result; } } } throw new IllegalArgumentException("NO"); }}
2.2 时间复杂度为O(n)
单重循环,同时利用HashMap,快速O(1)查询
public int[] twoSun_update(int[] nums,int target){ int result[]=new int[2]; Map<Integer,Integer> table=new HashMap<>(); for (int i = 0; i < nums.length; i++) { table.put(nums[i],i); int complement=target-nums[i]; if (table.containsKey(complement)) { result[0]=i;result[1]=table.get(complement); return result; } } throw new IllegalArgumentException("NO"); }
上述算法是在将数组转化为map的同时进行检验。当然,我们也可以先转化后检验,时间复杂度不变。
0 0
- LeetCode — Two Sum
- LeetCode—Two Sum
- LeetCode—Two Sum
- leetcode—Two Sum
- LeetCode —-Two Sum
- LeetCode——1.Two Sum
- Leetcode——1. Two Sum
- LeetCode——1.Two SUM
- Leetcode——1. Two Sum
- LeetCode——1. Two Sum
- LeetCode——1. Two Sum
- 1. Two Sum——LeetCode OJ
- LeetCode——Two Sum
- LeetCode——Two Sum
- Leetcode —— Two Sum
- LeetCode——Two Sum
- Two Sum —— Leetcode
- LeetCode——Two Sum
- Java单链表
- Java循环单链表
- HTML5 Audio Video Canvas Cookie Storage
- Hive的内置服务和hiveserver/hiveserver2的比较
- iOS navigationBar translucent属性
- LeetCode——1.Two Sum
- java实现日期转中文大写形式
- MFC中CArray类原理及其应用
- css盒子模型
- poj 1061 青蛙的约会
- codeforces J. Spelling Check
- 欧几里得算法及其扩展
- Java栈(数组实现)
- java中的实例初始化