牛客刷题系列之进阶版(组队竞赛,排序子序列,倒置字符串, 删除公共字符,修理牧场)
一:排序子序列
题目:题目链接
代码:
复制代码
思路:
先判断是升序还是降序,或者只是相同的
假如是升序或者降序,一直++,直到不为升序或者降序为止
假如是相同的,直接++
注意:
注意 开空间是开 n+1 个空间,以防越界
注意要有相同情况下的判断,不然会出现这种 情况
假如没有相同情况的判断,会多加一次
二:组队竞赛
题目:题目链接
代码:
复制代码
思路:
先排序
最优解是将最小的一个数和右边两个大数进行组队,这样得到的平均值最大
注意:
注意排序函数要引用头文件<algorithm>
三:倒置字符串
题目:题目链接
这里就不写常规的写法了,只介绍一种我觉得很巧妙的方法
代码:
复制代码
思路:
先输入一个单词到 s1 上
再循环输入,每次输入的单词都在上一个单词的前面
直到输入,即完成了逆置
注意:
注意是 s2 = s1 + " "+ s2;
启发:
当我们面对一些让我们自己输入的题目时,我们可以先一开始不全部输入进去,一部分一部分的输入,一边输入一边处理
四: 删除公共字符
题目:题目链接
代码:
复制代码
注意:
可以将要输出的内容保存到一个 string 里,可以减少很多不必要的运算
五:修理牧场(利用堆 和 哈夫曼树思想的运用)
题目:
代码:
复制代码
这道题主要考的是对 堆,即优先级队列的运用
注意:
注意优先级队列的定义 priority_queue<int,vetcor<int >,great<int>> queue
ps
想和博主一样刷优质面试和算法题嘛,快来刷题面试神器牛客吧,期待与你在牛客相见噢!
版权声明: 本文为 InfoQ 作者【雪芙花】的原创文章。
原文链接:【http://xie.infoq.cn/article/bb4fafbfbd179ffa980e66a6b】。未经作者许可,禁止转载。
评论