力扣刷题第十四天--哈希表篇

前言

看lol世界赛入迷了,最近心情也很浮躁。哈希表题目看着很简单,然而并写不出来。基础知识很多东西都不知道,没有基础是写不了题的,明天看看map,golang基础也要赶紧学完。

内容

一、查找共用字符

1002.查找共用字符

给你一个字符串数组 words ,请你找出所有在 words 的每个字符串中都出现的共用字符( 包括重复字符),并以数组形式返回。你可以按 任意顺序 返回答案。

func commonChars(words []string) (ans []string) {
    minFreq:=[26]int{}
    for i:=range minFreq{
        minFreq[i]=math.MaxInt64

    }
    for _,word:=range words{
        freq:=[26]int{}
        for _,b:=range word{
           freq[b-'a']++
        }
        for i,f:=range freq[:]{//通过使用 freq[:],我们获取了 freq 切片的副本,这样在循环过程中不会修改原始切片。
            if f<minFreq[i]{
                minFreq[i]=f
            }
        }
    }
  for i:=byte(0);i<26;i++{//初始化变量 i 为 byte 类型,并将其值设置为 0。
       for j:=0;j<minFreq[i];j++{
           ans=append(ans,string('a'+i))//'a' + 0 是字母 'a','a' + 1 是字母 'b',以此类推,直到 'a' + 25 是字母 'z'
       }
  }
  return 
}
二、两个数组的交集

349.两个数组的交集

给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。

两个集合
func intersection(nums1 []int, nums2 []int) (ans []int) {
   hashTable1:=map[int]struct{}{}
   hashTable2:=map[int]struct{}{}
     for _,v:=range nums1{
       hashTable1[v]=struct{}{}//向 map set1 中添加一个键值对。这里的键是 v,值是 struct{}
     }
    for _,v:=range nums2{
        hashTable2[v]=struct{}{}
    }
    if len(hashTable1)>len(hashTable2){
        hashTable1,hashTable2=hashTable2,hashTable1
    }
    for v:=range hashTable1{
       if _,has:=hashTable2[v];has{
          ans=append(ans,v)
       }
    }
    return 
}

最后

调整一下,静心学习!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值