当前位置: 首页 > news >正文

代码随想录算法训练营第五天 |242.有效的字母异位词、349. 两个数组的交集、第202题. 快乐数、1. 两数之和

242.有效的字母异位词

 思路:想到的是分别遍历两个数组,然后用map统计值,一个数组遍历的时候对值++,一个--,如果value没有能消除完,那就不一样。
优化:其实一次遍历就可以做完。
func isAnagram(s string, t string) bool {hash := map[byte]int{}len_s := len(s)len_t := len(t)for i := 0 ; i < len_s ; i++{hash[s[i]]++}for i := 0 ; i < len_t ; i++{hash[t[i]]--}for i,_ := range hash{if hash[i]!= 0{return false}}return true
}

  

  

349. 两个数组的交集

思路:一开始也想用242的方法,但是不能仅仅从偶数基数来判断,然后想的办法是先把一个数组遍历,存入map中,第二个数组遍历看map里面有不有这个数,然后再穿插一个去重数组。  

func intersection(nums1 []int, nums2 []int) []int {res := make([]int,0)hash1 := map[int]int{}inout := map[int]int{}for _,i2 := range nums1{hash1[i2]++}for _,i2 := range nums2{if hash1[i2] != 0 && inout[i2] == 0{res = append(res,i2)inout[i2]++}}return res
}

  

202.快乐数

用-1 和1的返回值来代表输出值,一开始想错了以为个位数就不用判断了,直接看是不是1,其实真正的结束判断是用看是否一个结果出现了两次,如果出现了两次那就是错的。

func isHappy(n int) bool {sumtotal := map[int]int{}res := judgehappy(n,sumtotal)for res != -1 && res != 1{res = judgehappy(res,sumtotal)}if res == -1{return false}else{return true}
}
func judgehappy(n int,sumtotal map[int]int) int{res := make([]int,0)tmp := nfor tmp != 0{res = append(res,tmp % 10)tmp /= 10}sum := 0for _,i2 := range res{sum += i2 * i2}sumtotal[sum]++for _,i2 := range sumtotal{if i2 > 1{return -1}}return sum
}

  

1.两数之和

思路:暴力思路不多讲,优化的话就是遍历一次数组,边遍历边把数组出现的值和坐标放到哈希表,然后一次一次向哈希表查这个值是否存在,如果有输出没有就往前走

func twoSum(nums []int, target int) []int {m := make(map[int]int)for i, num := range nums {complement := target - numif index, found := m[complement]; found {return []int{index, i}}m[num] = i}return nil  // 返回空数组 nil 代替空切片
}

  

 

 

 

http://www.zskr.cn/news/9844.html

相关文章:

  • 无意中在应用层瞥见了一个微内核的操作系统调度器
  • 9.22模拟赛总结
  • 莫队 n的序列,多次查询一段区间内的数字的个数
  • 2- 不知道自己现在做的对不对,有没有浪费掉自己的才华 也许自己是一个天才马术 但是没有资源只能 这样
  • k8s系列--容器生命周期
  • 学生管理系统案例初步分析报告
  • 9月22号
  • 题解:AT_agc052_c [AGC052C] Nondivisible Prefix Sums
  • 2025年9月22日 - 20243867孙堃2405
  • 二进制 - 20243867孙堃2405
  • 如何让AI生成多页面APP原型图?AI原型设计实用指南
  • 代码随想录算法训练营第五天 | leetcode 242 349 202 1
  • 原码补码反码与位操作
  • 特殊句式
  • RAG系统嵌入模型怎么选?选型策略和踩坑指南
  • (应该写的比较清晰)D2. Max Sum OR (Hard Version)
  • Linux运维
  • day001
  • # Xilnx FPGA 资源结构
  • 借助S参数测量评估电容器阻抗第 2 部分
  • 实战:Android 自定义菊花加载框(带超时自动消失) - 教程
  • 超级恶心的题面 [USACO21OPEN] Portals G
  • 昆仑通态触摸屏保存参数到内部存储器并读取的方法成都控制器开发提供
  • 使用reCAPTCHA提升WordPress网站安全性 - 指南
  • LaTeX入门:10分钟掌握核心用法 - 详解
  • Codeforces 2127 D(图论,组合数学,DFS,分类讨论)
  • 每日报告-关于本学期的计划
  • 若依前后端分离版本二次开发(一 搭建开发环境,新建模块)
  • 每日博客
  • STM32HAL 飞快入门(十九):UART 编程(二)—— 中断方式实现收发及局限分析