• 两数之和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; }
  • 相关阅读:
    git
    switch切换
    js object 常用方法总结
    pod install速度慢的终极解决方案
    MacBook Pro 初体验
    LINQ以及LINQ to Object 和LINQ to Entities
    WebService/WCF/WebAPI 之间的区别
    owin
    回车和刷新以及Ctr+F5的区别
    ASP.NET Core 启动流程图
  • 原文地址:https://www.cnblogs.com/A-FM/p/11057263.html
Copyright © 2020-2023  润新知