美团面试题:寻找数组置尾操作的最小值「建议收藏」

美团面试题:寻找数组置尾操作的最小值

大家好,又见面了,我是全栈君。

题目:

一个递增的整形数组,如今的操作是每次从数组的开头取出一个元素放在数组的末尾。连续n次这种操作后得到一个新的数组,

如今把这个数组给你,请求出最少移动的次数。

解析:

1 最easy想到的方法就是依次遍历这个数组,找到最小值的位置,这种时间复杂度就是O(n)。

2 考虑到事先是排好序的,所以我们能够使用二分查找法来实现这个操作,仅仅只是是这个二分查找法是传统二分查找法的变种。

这里我们仅仅要考虑下面3种情况。
<1>数组先递增再递减,中值大于左值,那么此时的最小值就处于数组的右半部。

<2>数组先递增再递减,中值小于左值,那么此时的最小值就处于数组的左半部。

<3>数组单调递增,此时的最小值就是数组的首元素。

3 程序实现
依据解析中2的思想,採取二分查找法的程序例如以下所看到的:

#include <iostream>
using namespace std;
int getInvertNumber(int arr[],int nLength);


void main()
{
	int arr[] = {1,2,3,4,5,6,7,8,9};
	int brr[] = {1,3,4,6,8,9};
	int sb = getInvertNumber(brr,sizeof(brr)/sizeof(brr[0]));
	cout<<sb<<endl;


}


int getInvertNumber(int arr[],int nLength)
{
	int nLeft = 0;
	int nRight = nLength-1;
	int nMid;
	if(arr[nLeft]<arr[nRight])
		return 0;
	while(nLeft<nRight)
	{
		nMid = ( nLeft + nRight ) / 2;
		if(arr[nMid]>arr[nLeft])
			nLeft = nMid;
		else
			nRight = nMid;
	}


	return nLength -nMid-1;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116511.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • printwriter用法_printwriter设置编码

    printwriter用法_printwriter设置编码PrintWriter的使用java.io.PrintWriter具有自动行刷新的缓冲字符输出流,特点是可以按行写出字符串,并且可以自动行刷新。java.io.BufferedWriter是缓冲字符输出流,内部有缓冲区可以进行块写操作提供效率,而PrintWriter就是通过连接它实现的缓冲功能(PW的很多构造方法内部自动连接它)。PW支持两个直接对文件写操作的构造方法:*…

    2022年8月10日
  • 云服务器上装软件吗,云服务器能安装软件吗?[通俗易懂]

    云服务器上装软件吗,云服务器能安装软件吗?[通俗易懂]云服务器能安装软件吗?有些时候电脑需要杀毒软件是很正常的事情,但是相比于这些庞大的云系统来说,一般的杀毒软件是根本运作不起来的,因为一旦安装了杀毒软件,肯定是要全部杀毒的,不可能这个系统可以,那个系统就不可以,这就谈到了一个空间包含的问题。如果包含量太小的话,也是没有什么作用的,那么云服务器能安装什么杀毒软件呢?什么样的杀毒软件才能够更好的运转起这个庞大的空间系统呢?对于庞大的空间系统,很多厂家为…

    2022年5月23日
  • DoJa平台手机游戏的开发与移植

    DoJa平台手机游戏的开发与移植作者:关文柏时间:2006年6月13日关键字:DoJaNTTDoCoMoi-modei-appli内容概况:·DoJa技术简介·DoJaAPI预览·appli程序的开发·DoJa游戏移植到J2ME平台的方法·相关资源链接一,DoJa技术简介简单的说,DoJa是日本最大的移动通讯公司NTTDoCoMo…

    2022年6月5日
  • Google Buzz 里 90% 的内容都是 “非人类”「建议收藏」

    Google Buzz 里 90% 的内容都是 “非人类”「建议收藏」距GoogleBuzz发布还不到10周,尽管Google一直在改进它,但似乎人们还是没有陷入Google的社交圈子。来自PostRank的统计,有90%的GoogleBuzz都是机器人发出来的,其中最多的是从twitter同步过来的内容,占到62%还多,而来自feeds的也有26%多,尽有不到11%的内容是真实的人肉发出来的。也就是说,GoogleBuzz的用户们还是习…

    2022年10月15日
  • jquery技巧总结

    jquery技巧总结

    2021年8月8日
  • wincc远程服务器配置,WINCC-OPC服务器配置

    wincc远程服务器配置,WINCC-OPC服务器配置《WINCC-OPC服务器配置》由会员分享,可在线阅读,更多相关《WINCC-OPC服务器配置(13页珍藏版)》请在人人文库网上搜索。1、两台WinCC之间OPC通讯方法(WinXP)OPC客户端1、登陆计算机名及密码要与服务器端(OPCServer)一致。a)如:用户名:administrator密码:12342、OPC客户端要与服务器端处于同一个网络。a)如:OPCServerIP:…

    2022年6月20日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号