• leetcode-两数之和


    题目链接:https://leetcode.cn/problems/two-sum/

    暴力解法

    两层for循环

    func twoSum(nums []int, target int) []int {
    	for i:= 0;i
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    哈希
    • 使用空间,减少时间
      • 需要找到这题的特点
        • 一次遍历,那么前面的数我已经遍历过了,假设我记忆好,把前面的数都记下来,那么就知道这次能不能成对
      • 另一种思维
        • 结果思维
          • 当我找到后面的一个数时,前面的数其实已经出现过了,所以前面我需要记下前面的数及其出现的下标
    func twoSum(nums []int, target int) []int {
    	numMap := map[int]int{}
    	for i:=0 ;i < len(nums);i++{
    		if _,ok := numMap[target-nums[i]];ok{
    			return []int{numMap[target-nums[i]],i}
    		}
    		numMap[nums[i]] = i
    	}
    	return []int{}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    多线程详解(二)静态代理模式&Lambda表达式
    ORA-00600之数据库内部BUG 22114696
    Linux命令详解(10)-grep命令
    前后端分离
    【云原生之k8s】Helm 工具安装
    java技术专家面试指南80问【java学习+面试宝典】(九)
    事务的ACID特性
    【漏洞通告】CVE-2022-31690 Spring Security Oauth2 Client权限提升漏洞
    android jectpack DataBinding 数据绑定 改变ui的几种方式
    ==和equals()的区别
  • 原文地址:https://blog.csdn.net/u014704998/article/details/128062584