当前位置: 首页> 房产> 建筑 > 中国科技新闻网官方_制作代码的软件_seo工具在线访问_googleplay官方下载

中国科技新闻网官方_制作代码的软件_seo工具在线访问_googleplay官方下载

时间:2025/7/12 3:02:47来源:https://blog.csdn.net/qq_45734745/article/details/143064420 浏览次数:0次
中国科技新闻网官方_制作代码的软件_seo工具在线访问_googleplay官方下载

坚持按题型打卡&刷&梳理力扣算法题系列,语言为go,Day1

两数之和
  • 题目描述
    在这里插入图片描述
  • 解题思路
    • 采用哈希表
      • 将nums[i] + nums[j] = target 转化成 nums[i] = target - nums[j]去思考
      • 新建一个map来存储,键为值(左边的),值为索引
      • 遍历数组nums的时候,先将当前键进行比对检验(看target - x键是否存在,存在就是找到了)
        • 如果没找到的话就先把当前的nums[j]作为当前map键(x,也就是nums[j]对应的值)值(j,也就是当前nums的索引)存进去
  • 代码参考
func twoSum(nums []int, target int) []int {idx :=map[int]int{}for j,x:=range nums{i,ok:=idx[target-x]if ok{return []int{i,j}}idx[x]=j}return nil
}
两数之和——输入有序数组
  • 题目描述
    在这里插入图片描述
  • 解题思路
    • 使用双指针
      • 因为有序,如果和已经比target小了,那么前面的值就可以不要了(操作表现为左指针后移)
      • 同理,如果当前和已经比target大了,那么后面的值就可以不要了(操作表现为左指针前移)
  • 代码参考
func twoSum(numbers []int, target int) []int {left,right :=0, len(numbers)-1for {if numbers[left] + numbers[right] == target{return []int{left+1,right+1}}if numbers[left] + numbers[right] > target{right--}if numbers[left] + numbers[right] < target{left++}}return nil
}
  • tips
    • for{}直接写=while true的效果
    • 定义了未使用的变量会报错
    • go中获取数组长度用len(nums)-1,注意根据题目要求决定要不要-1
关键字:中国科技新闻网官方_制作代码的软件_seo工具在线访问_googleplay官方下载

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: