• 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
  • 相关阅读:
    2022牛客暑期多校训练营7(BCFGJ)
    【C++特殊类的设计】
    docker的简介--安装--操作命令
    Redis缓存雪崩、缓存穿透、缓存击穿
    NATAPP 访问vue-cli启动的项目
    VUE3、uni-app、SpringBoot登录密码加密
    一看就懂:这就是机器学习过程!
    Linux C 字符串的sizeof与strlen的区别
    14、spring-IOC
    【C++】Qt的属性系统,简单示例
  • 原文地址:https://blog.csdn.net/u014704998/article/details/128062584