【笔试练习题】双端放石子排序

2017百度春招笔试题里面有一题是这样的:

度度熊有一个N个数的数组,他想将数组从小到大 排好序,但是萌萌的度度熊只会下面这个操作:
任取数组中的一个数然后将它放置在数组的最后一个位置。
问最少操作多少次可以使得数组从小到大有序?

这篇博客里面提供了解法:https://blog.csdn.net/weixin_39530880/article/details/82315709

2019年的2020浪潮秋招有一道笔试题是也差不多,不过要求可以拿出的数字放在最前面或者最后面。而且保证数组中没有重复数字。

我的解法如下(但是找不到哪里可以跑case,因此并没有试验过)。

#include <bits/stdc++.h>
using namespace std;

bool is_ordered(const list<int> &v) {
	auto it1 = v.begin();
	auto it2 = v.begin();
	it2++;
	while (it2 != v.end()) {
		if (*it2 < *it1) {
			return false;
		}
		it1++;
		it2++;
	}
	return true;
}

int get_ans(list<int> &v) {
	if (is_ordered(v)) {// 如果是有序的&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值