leetcode-Two Sum

这道题目最直接的方法就是for循环俩次遍历数组,第二次遍历用target减去对应的值然后看数组中是否有该值,这种的解法时间复杂度是O(n^2)。我们想一下之所以需要二次遍历的原因是因为没有办法在O(1)的时间内判断出差值是否存在于该数组中,如果有的话其实遍历一次数组就可以了,O(1)时间复杂度判断一个数字是否存在?没错,有现成的数据结构能够满足我们的诉求,用map

import java.util.HashMap;
public class twoSum{
	public static void main(String[] args) {
		int[] arr = {2,7,11,15};
		int[] brr = getIdx(arr,9);
		if(brr.length > 0) {
			System.out.println(brr[0]);
			System.out.println(brr[1]);
		}
	}
	public static int[] getIdx(int[] arr,int target) {
		HashMap<Integer,Integer> mp = new HashMap();
		for(int i = 0;i<arr.length;i++) {
			mp.put(arr[i],i);
		}
		int[] res = new int[2];
		for(int i = 0;i<arr.length;i++) {
			if(mp.containsKey(target-arr[i]) && i != mp.get(target-arr[i])) {
				res[0] = i;
				res[1] = mp.get(target-arr[i]);
				return res;
			}
		}
		return res;
	}
}

相关推荐

  1. leetcode

    2024-03-24 21:40:05       39 阅读
  2. leetcode

    2024-03-24 21:40:05       38 阅读
  3. leetcode

    2024-03-24 21:40:05       37 阅读
  4. LeetCode

    2024-03-24 21:40:05       20 阅读
  5. leetcode

    2024-03-24 21:40:05       11 阅读
  6. Leetcode -2

    2024-03-24 21:40:05       35 阅读
  7. Leetcode】计算器

    2024-03-24 21:40:05       42 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-24 21:40:05       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-24 21:40:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-24 21:40:05       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-24 21:40:05       20 阅读

热门阅读

  1. c#事件和委托代码demo

    2024-03-24 21:40:05       20 阅读
  2. rust - 基于AES-CBC-128的图片加密实现

    2024-03-24 21:40:05       16 阅读
  3. Git常用指令总结

    2024-03-24 21:40:05       16 阅读
  4. git常用指令

    2024-03-24 21:40:05       17 阅读
  5. Web基础应用

    2024-03-24 21:40:05       19 阅读
  6. js中的new Map的用法

    2024-03-24 21:40:05       19 阅读
  7. 算法刷题记录 Day27

    2024-03-24 21:40:05       18 阅读
  8. qt拖拽事件重写

    2024-03-24 21:40:05       17 阅读