数据结构入门3-数组 『两个数组的交集 II | 买卖股票的好时机』


💪💪💪此系列仅为记录本人补充学习数据结构相关知识,有兴趣的,大家可以共同学习👏👏👏

[= 两个数组的交集 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
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bennett_G

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值