3.算法通关面试 --- 哈希表和集合
Posted enlyhua
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.算法通关面试 --- 哈希表和集合相关的知识,希望对你有一定的参考价值。
1.有效的字母异位词
https://leetcode-cn.com/problems/valid-anagram/
第一种解法:排序
func isAnagram(s, t string) bool
//字符串转换成字节数组
s1, s2 := []byte(s), []byte(t)
sort.Slice(s1, func(i,j int) bool return s1[i] > s1[j] )
sort.Slice(s2, func(i,j int) bool return s2[i] > s2[j] )
return string(s1) == string(s2)
第二种解法:哈希表
func isAnagram(s, t string) bool
var c1, c2 [26]int
for _, ch := range s
c1[ch - 'a']++
for _, ch := range t
c2[ch - 'a']++
return c1 == c2
2.两数之和
https://leetcode-cn.com/problems/two-sum/
1.暴力枚举
func towSum(nums []int, target int) []int
for i, x := ranges nums
for j := i + 1; j < len(nums); j++
if x + nums[j] == target
return []inti,j
return nil
2.哈希表
func twoSum(nums []int, target int) []int
hashTable := map[int]int
for i, x := range nums
if p, ok := hashTable[target-x]; ok
return []int p, i
hashTable[x] = i
return nil
2.三数之和
https://leetcode-cn.com/problems/3sum/
3.四数之和
https://leetcode-cn.com/problems/4sum/
以上是关于3.算法通关面试 --- 哈希表和集合的主要内容,如果未能解决你的问题,请参考以下文章