牛客算法竞赛入门课第一节习题Part4(铺地毯~明明的随机数)

铺地毯 (思维+枚举)

题意:

找一个点被地毯覆盖的最上面的地毯编号,没有输出-1;

思路:

UPC做过加强版233

可以倒着枚举每个地毯,看是否覆盖该点,如果覆盖则输出,因为是后面的覆盖前面的而且是倒着枚举,这时候这张地毯一定是覆盖该点的最上面的地毯。-1的情况特判一下就好了。

要注意给出的是左上角的端点和边长!!

代码:

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43887238&returnHomeType=1&uid=115850812

纪念品分组 (双指针+枚举)

题意:

大家好,我是乐乐!我来发礼物哈哈哈

有n个物品,每个物品都有他对应的价值,现需要把纪念品分为若干组,每组最多有两个,而且价格之和不能超过某定值,问最少分成几组。

思路:

贪心的思想,从小到大排序后,对于每一个大的都尽量找一个小的匹配,如果找不到小的就只能自己一组了。

所以可以用两个指针l,r进行移动。如果当前两个可以分到一组,就l++,r--,res++;否则,就r--,res++,即价值大的物品自己一组;

代码:

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43887305&returnHomeType=1&uid=115850812

校门外的树(差分)

题意:

值周的数据弱化版。

代码:

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43887319&returnHomeType=1&uid=115850812

明明的随机数

题意:

给定n个数,要求排序并去重。

思路:

在我还是个小小白是就做过这个题,当时的代码又臭又长哈哈哈!

有个函数叫unique,是将相邻重复元素的重复元素只保留一个,其余的移动到容易末尾。

代码:

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43887367&returnHomeType=1&uid=115850812