💪💪💪此系列仅为记录本人补充学习数据结构相关知识,有兴趣的,大家可以共同学习👏👏👏
[= 两个数组的交集 II =]
题目描述
解题思路
利用hash 遍历nums1并记录其出现的次数
遍历nums2 判断 hash是否存在,如果次数大于0则返回该值,同时hash中对应次数减1
解题方法
func intersect(nums1 []int, nums2 []int) []int {
m := map[int]int{}
ans :=[]int{}
for _,v :=range nums1 {
m[v]++
}
for _,v:=range nums2{
if(m[v]>0) {
ans = append(ans, v)
m[v]--
}
}
return ans
}
[= 买卖股票的最佳时机 =]
题目描述
解题思路
方法一:暴力法两次遍历求出最大值即可
方法二:一次遍历,求出最小值同时利用最小值找到最大的值
解题思路
// 方法一
// 此方法也是可以的,但是测试用例也不知道时哪个人才写的,满满一大页的数据
// 结果就是超时😵😵😵😵😵😵😵😵😵😵😵😵😵😵😵😵😵😵😵😵😵😵😵😵😵😵😵
func maxProfit(prices []int) int {
max := 0
for i:=0;i<len(prices)-1;i++ {
for j:=i+1;j<len(prices);j++ {
if prices[j] > prices[i] {
ans := prices[j] - prices[i]
if max < ans {
max = ans
}
}
}
}
return max
}
// 方法二
func maxProfit(prices []int) int {
min, max := prices[0], 0
for i:=0; i<len(prices);i++ {
// 每次判断是否最大值
if prices[i] - min > max {
max = prices[i] - min
}
// 每次也都更新最小值
if prices[i] < min {
min = prices[i]
}
}
return max
}