zoukankan      html  css  js  c++  java
  • 两数之和LeetCode

    /** * 无脑暴力: * 时间复杂度 : n^2 * 空间复杂度 : 1 * 70ms * 38.5MB */ public static int[] traverseTwoSum(int[] nums, int target){ int len = nums.length; for (int i = 0; i < len; i++) { for (int j = i+1; j < len; j++) { if(nums[i]+nums[j]==target){ return new int[]{i,j}; } } } return null; } /** * 因为哈希表的查找速度非常的快,我们可以采用hash表去解决问题. * 时间: n * 空间: n * 4ms * 36.2MB * */ public static int[] secondHashTwoSum(int[] nums, int target){ Map<Integer, Integer> map = new HashMap<>(); int len = nums.length; for (int i = 0; i < len; i++) { // 根据键去找 值 map.put(nums[i],i); } int findNum; for (int i = 0; i < len; i++) { findNum = target - nums[i]; if(map.containsKey(findNum)&&map.get(findNum)!=i){ return new int[]{i,map.get(findNum)}; } } return null; } /** * 改进为一次hash * 时间: n * 空间: n * 4ms * 36.2MB * */ public static int[] firstHashTwoSum(int[] nums, int target){ Map<Integer, Integer> map = new HashMap<>(); int len = nums.length,findNum; for (int i = 0; i < len; i++) { findNum = target-nums[i]; if(map.containsKey(findNum)){ return new int[] {map.get(findNum),i}; } map.put(nums[i],i); } return null; }
  • 相关阅读:
    Springsecurity3.1.3配置多个登陆页面
    将数字转换为大写(保留小数点后面2位)
    纯JavaScript实现的二维码图片生成器
    poi导出excel
    发送邮件
    Lodop实现打印功能
    遍历list
    循环监听输入框回车事件
    监听回车事件记录
    简单的事务操作过程
  • 原文地址:https://www.cnblogs.com/A-FM/p/11057263.html
Copyright © 2011-2022 走看看