1.贪心和枚举

1.1贪心

贪心指每一步都做出当前最优的选择。一般解决的问题有如下特点:局部最优能导致全局最优。

典型的贪心问题:

1. 纸币面额有1元、2元、10元、100元。问凑出正好x元最少要多少张纸币。

【思路】

显然是尽量取面额大的,因为有整除关系,多张面额小的一定可以被一张面额大的代替。

(如果没有整除关系怎么办?)

2. 纸币面额有a[1]元,a[2]元......a[n]元。问至少凑出x元最少需要多少张纸币?(或者问,x张纸币最多可以凑多少元)

【思路】

显然的贪心算法。每次尽量取面额大的即可。

 

1. 2枚举

1.2.1朴素枚举

传统的for循环(嵌套)。一般考察知识点的题目用枚举也可以获得部分分。

例如:《夹缝中求和》(来源牛客IOI周赛普及组20-D)

https://ac.nowcoder.com/acm/contest/8997/D

 

给定一个数组a,以及两个正整数x 和y ,求取两个数ai和aj (i<j),满足x≤ai+aj≤y的取法有多少种?

注:只要两个取法有一个角标不同

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

算法笔面试宝典 文章被收录于专栏

算法笔面试真题解析

全部评论

相关推荐

01-22 14:36
门头沟学院 Java
不知道怎么取名字_:我就好奇,你是这家的hr还是?咋这都能搞到
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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