• 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
  • 相关阅读:
    Permute3(万能音视频转换器)
    Dubins曲线学习笔记及相关思考
    快速导入mysql较大的SQL文件
    计算每组的前 N 名
    Java基础之《netty(1)—netty介绍》
    常用的基本命令(必掌握)
    Rocksdb加SPDK改善吞吐能力建设
    生于云、长于云,RocketMQ 5.0 再出发
    为什么说指针是 C 语言的精髓?
    2.DApp-编写和运行solidity智能合约
  • 原文地址:https://blog.csdn.net/u014704998/article/details/128062584