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; }
  • 相关阅读:
    第一章 初识shiro
    LDAP概念
    css定位
    css随笔1
    自己动手实现信息检索系统
    IntelliJ IDEA和pycharm注册码
    俄罗斯农夫算法
    [NOIP2013]转圈游戏
    [codevs1287]矩阵乘法
    [洛谷1314]无序字母对
  • 原文地址:https://www.cnblogs.com/A-FM/p/11057263.html
Copyright © 2011-2022 走看看