零钱兑换

链接

直接用dfs怕是要超时,有一种巧妙的思路

设一个大小为amount的数组dp,(全部初始化为INT_MAX)对于coins的每一个值,dp[coin]都设为1, 然后,我们可以设想一下,对于某一个i,dp[k]!=INT_MAX, 那么dp[i]是不是有可能等于dp[k]+1(也有可能dp[i]本身就比较小)

既然这样,那么我们让i从1遍历到amount,就能找到最终答案了

class Solution {
public:
    int coinChange(vector<int>& coins, int amount) {
        vector<int>dp(amount+1,INT_MAX);
        dp[0]=0;
       for(int i=0;i<coins.size();i++){
        if(coins[i]<=amount)
        dp[coins[i]]=1;
       }
        for(int i=1;i<=amount;i++){
            for(int coin:coins){
                if(i>coin&&dp[i-coin]!=INT_MAX){
                    dp[i]=min(dp[i], dp[i-coin] + 1);
                }
            }
        }
        if(dp[amount]!=INT_MAX) return dp[amount];
        return -1;
    }
};

时间复杂度:O(amount*k)

空间复杂度:O(amount)

全部评论

相关推荐

02-01 23:47
已编辑
天津大学 信息技术岗
首先,我不算真正意义上的0实习,曾经在国企做过一段不接触技术的实习工作。我想先谈谈实习对于找工作的作用。在我看来,工作是什么,是你付出符合公司需要的劳动,然后公司给你报酬。所以这里就需要注意,工作的付出肯定是贴合公司的需求的。那么具体一点,就是你的业务部门,或者说你们的组,在做什么工作。那这时候,你作为组里的小leader,你需要招新人来,你最希望的是什么,是这个人很强吗?(当然你不能能力和别人差距太大)其实并非如此。就算是个大神,他来到组里肯定也是做组里需要做的工作,那自然我希望这个新人能够尽快上手来承担组里的工作,早点完成公司的安排。那么,怎么判断这个人能不能尽快上手呢?一段对口的实习当然是最好的,你已经掌握了一定业界在做这项工作的时候,需要一些什么,清楚做工作的一些流程,虽然不可能完全一致吧,但肯定要比完全不知道的人上手更快。所以,这就是实习在求职时带来的好处,你可以向面试官自然地证明,我能很快投入工作。那么没有实习行不行呢,肯定也是行的。首先啊,我坦然承认有实习肯定比没实习更占便宜,但找工作本身就看运气,那么多岗位,那么多候选人,你不知道自己投的这个岗位,和你竞争的是什么样的人,你更不知道和你竞争的人到底会不会落到现在这个岗位,28定律还是成立的,头部的有竞争力的候选者自然会收割一大堆offer,但人就一个人,最终只能去一个地方,自然还能空出来很多。所以说不定你投的这个,最后可能剩下的都是没实习的,又有人肯定可以拿到offer,那自然0实习也是可以拿到offer的。那么假设就是没实习,怎么能在招聘的时候稍微有点优势呢。我觉得第一就是项目。做项目和实习的共同点,就是你在接触工作要用到的一些技术,你有一些做事情的思路,有一些实际的动手经验,这种时候通过面试对你项目细节的考查,大概就能看出来你在做这些事情时,有没有解决问题的能力,那么如果有,其实和实习也差别不大,毕竟我们前面提到的都是对口实习,可哪有那么多对口实习,不同的公司用的技术栈也可以完全不一样,那这时候他们的实习无非就是有人带着做了一个大项目的其中一部分,和自己好好做个项目,并没有差距特别大。最近在做agent的项目,虽然本意是是为了能够毕业,但在做的过程中,我其实发现所谓的agent开发,和传统的后端开发其实差别不太大,agent的思路,架构,用到的一些东西,其实大概率都是公司里早就定好的,现有的成熟的,突破这些底层架构不是开发的职责,所以在这种情况下,其实干的活无非就是把这个东西细节实现一下,然后agent需要调用的tool,在以前不就是正常的开发工作吗,我的感觉上并没有多大的区别。。以此我也想到,面试在说自己项目的细节的时候,还是要好好准备,尽量自己真的动手都写过,清楚这个项目是怎么回事,每一块是干什么的,为什么要这么做,在面试的时候还是可以去展现自己的能力的。三年后又来秋招,转眼离秋招只剩下五个月,是时候开始重拾这些求职的内容了。祝都能好运吧,加油。
为什么有人零实习也能进大...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务