公告

微信

欢迎大家私信交流

Skip to content

part1

242.有效的字母异位词

分析

判断两个单词,是否出现了相同的字母数,只是位置不同。

根据字母的ASCII码唯一,可以判断出最多只会有26种情况,分别遍历单词,一边计数/减数,最后哈希表应该所有子项都为0,说明互为字母异位词。

代码

go
func isAnagram(s string, t string) bool {
	record := [26]int{}

	for _, r := range s {
		record[r-rune('a')]++
	}

	for _, r := range t {
		record[r-rune('a')]--
	}

	return record == [26]int{}
}

349.两个数组的交集

分析

  1. 使用哈希表将两个数组出现的数字记录住
  2. 通过遍历数组找到两个数组出现的数

代码

go
func intersection(nums1 []int, nums2 []int) []int {
	record1 := [1001]int{}
	record2 := [1001]int{}
	res := make([]int, 0)

	for _, num := range nums1 {
		record1[num] = 1
	}

	for _, num := range nums2 {
		record2[num] = 1
	}

	for i := 0; i <= 1000; i++ {
		if record1[i]+record2[i] == 2 {
			res = append(res, i)
		}
	}

	return res
}

上次更新于: