名企面试题个人总结——蘑菇街2017校园招聘(特殊交换)
注:题目来源于微信公众号“算法爱好者”,喜欢算法的您值得关注!
问题描述:
现有一个n个整数的序列,你要做的就是交换两个数的位置直到整个序列按照升序排列,那么将这个整数序列排好序,需要交换
多少次?例如,1,2,3,5,4,我们只需要交换一次,即将5和4交换即可。
输入描述:
第一行输入一个正整数n(n≤1000),表示数字序列的元素个数,占一行;接下来一行输入从1到n的n个整数排序,中间用空格隔
开
输出描述:
输出序列升序排列需要的最少交换次数
输入例子:
4
4 3 2 1
输出例子:
6
--------------------------------------------------------------------解题分界线-----------------------------------------------------------------------
这个题一看显然就想到了冒泡排序算法,每第i趟排序后,都会从数组内前n-i个元素中选出最大者,放至靠后的第n-i个位置上。
由于此不变性,我们在每一次循环时,不必遍历整个数组,而是访问前n-i个数组元素就可以。这样虽然减少了程序的执行次数,
但是并没有降低该算法时间复杂度,O(n^2)复杂度的程序在解决数据量大的问题时,并不能算有效的算法。这里只是给出了自
己的思考,你对这个问题有何看法呢,或者对这道面试题是否有其他有效的算法?欢迎在评论区留言。下面附上个人的解题源
码,和调试结果:
#include "stdafx.h"
#include<iostream>
using namespace std;int _tmain(int argc, _TCHAR* argv[])
{int num;//定义长度cin>>num;int *arr=new int(num);//定义一维数组用于存放待排序的数int count=0;//定义交换次数for(int k=0;k<num;k++)cin>>arr[k];//交换算法bool flag=false;//是否升序的标志位int j=0;//控制循环次数int temp;//存放临时变量,用于交换while(!flag){flag=true;for(int i=1;i<num-j;i++){if(arr[i]<arr[i-1])//交换并且修改flag,count加1{temp=arr[i];arr[i]=arr[i-1];arr[i-1]=temp;count++;//交换次数加1flag=false;}}j++;}cout<<count;delete [] arr;return 0;
}
上面这段程序运行后基本问题不大,但是会弹出一个不太理解的报错框,如下:
点击“继续”就可以了,我觉得这应该是数组的内存分配问题。暂且把它当做一个遗留问题,对系统内部的程序运行机制还不是特别
清楚,待日后解决(求大神赐教啊<0 _0>》)。
名企面试题个人总结——蘑菇街2017校园招聘(特殊交换)相关推荐
- 蘑菇街2017校园招聘笔试题
GO ON 1.下面的哪个选项是自底向上分析方法() 自底向上的分析技术 有: ( 1 )简单优先分析法 ( 2 )算符优先分析法 ( 3 )优先函数 ( 4 ) LR 分析法 自底向上分析法(bot ...
- 广州图普网络科技2017校园招聘简章
一.关于图普 图普科技是一家站在人工智能前沿的创新科技公司,专注于图像识别整体解决方案,为企业提供图像内容审核.图像内容分析.以图搜图等技术服务.凭借深厚的技术实力与专业的服务,图普科技与迅雷.秒拍. ...
- 【算法】创新工场涂鸦移动2017校园招聘测试题-A卷-软件工程师
今天做了创新工场涂鸦移动2017校园招聘测试题-A卷-软件工程师的题目,我也不知道这算不算是泄题,再说也不见得我写的算法就是对的.贴出来,希望大家相互学习,相互进步,如有违反XX,不胜荣幸. 链表 1 ...
- 华为面试题库c语言,华为校园招聘c语言面试题集.doc
华为校园招聘c语言面试题集.doc 华为C语言面试题集C语言面试题华为C语言面试题深圳华为面试C语言面试题1.局部变量能否和全局变量重名答能,局部会屏蔽全局.要用全局变量,需要使用"&quo ...
- 京东2017校园招聘数据与算法方向笔试题
昨天做了一下京东的在线笔试.京东这次笔试题分为三个部分,第一部分是选择题30道,第二部分是2道编程题,第三部分是5道实用性更强的选择题.这里仅贴出题目,不提供答案. 一.选择题 1.设循环队列的容量为 ...
- 网易2017校园招聘数据挖掘笔试题
1.藏宝图 题目描述 牛牛拿到了一个藏宝图,顺着藏宝图的指示,牛牛发现了一个藏宝盒,藏宝盒上有一个机关,机关每次会显示两个字符串s和t,根据古老的传说,牛牛需要每次都回答t是否是s的子序列.注意, ...
- 爱奇艺2017校园招聘笔试题
成长值计算 时间限制:C/C++语言 1000MS:其他语言 3000MS 内存限制:C/C++语言 65536KB:其他语言 589824KB 题目描述: 爱奇艺累计有2000万会员,为了提高会员权 ...
- 网易2017校园招聘笔试题 优雅的点
小易有一个圆心在坐标原点的圆,小易知道圆的半径的平方.小易认为在圆上的点而且横纵坐标都是整数的点是优雅的,小易现在想寻找一个算法计算出优雅的点的个数,请你来帮帮他. 例如:半径的平方如果为25 优雅的 ...
- 网易2017校园招聘笔试题 跳石板
小易来到了一条石板路前,每块石板上从1挨着编号为:1.2.3--. 这条石板路要根据特殊的规则才能前进:对于小易当前所在的编号为K的 石板,小易单次只能往前跳K的一个约数(不含1和K)步,即跳到K+X ...
- 去哪儿2017校园招聘笔试题
import java.util.Scanner;/*** filename extension* 时间限制:C/C++语言 1000MS:其他语言 3000MS* 内存限制:C/C++语言 6553 ...
最新文章
- WF4.0实战(一):文件审批流程
- 【Vegas原创】Mysql绿色版安装方法
- CSharp中的数组和ArrayList及List
- public protect private继承
- 【ARTS】01_12_左耳听风-20190128~20190203
- 消息称苹果正探索更大尺寸iPad 屏幕分别为14英寸、16英寸
- ●洛谷P2606 [ZJOI2010]排列计数
- 爬虫应对银行安全控件
- Ubuntu18.04安装CAJViewer
- 我的移植经验之谈,简单的Rom移植教程——附移植JoyOS实例
- java 字符串的字节数_在Java中怎么计算字符编码和字符串所占字节数 .
- 计算机图形学坐标系的作用,坐标系的概念和坐标系之间的变换
- 大屏布局css,前端大屏项目的屏幕适配方案
- windows 控制台提示:请求的操作需要提升
- ★另人无比怀念的90年代动画片★ ‖最终整理篇‖
- vue-quill-editor编辑器踩坑
- poi tl 判断空值_使用poi-tl操作word模板
- Android 高德地图计算 Circle 计算上下左右四个点经纬度,Circle和Polygon是否全部包含,计算地图中点到线的最短距离
- 更聪明的免费图片素材搜素引擎 Everypixel 用 AI 排除俗气照片
- nnDetection复现Luna16 附模型
热门文章
- 2022最新MySQL面试题-有详细完整的答案解析
- download.php是什么文件,qmdownload是什么文件?
- linux将两个目录做软连接,centos软连接创建
- openstack 单节点 ubuntu 12.04 server 安装步骤 转自陈沙克老师博客
- 使用w查看系统负载 vmstat命令 top命令 sar命令 nload命令
- “NoSuchBeanDefinitionException: No qualifying bean of type”问题解决
- python图标变成了白色_桌面图标上有个白色文件图标怎么去掉?解决桌面图标白色方块挡住...
- Win10重装系统/迁移系统,教你如何简单快速删除原系统文件
- [精简]快速入门五线谱
- Android 图片压缩的几种方法