Careercup - Microsoft面试题 - 6282862240202752
2014-05-11 03:56
原题:
Given an integer array. Perform circular right shift by n.
Give the best solution.
题目:给数组进行循环移位,给出最优解。
解法:首先要考虑n的范围,对于负数和超过数组长度的数,先进行取模操作。然后用三次反转数组就可以完成循环移位。
代码:
// http://www.careercup.com/question?id=6282862240202752
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std; void reverse(vector<int> &v, int ll, int rr)
{
int n = (int)v.size(); if (ll > rr) {
swap(ll, rr);
}
if (ll < || ll > n - || rr < || rr > n - ) {
return;
}
while (ll < rr) {
swap(v[ll], v[rr]);
++ll;
--rr;
}
} void rightShift(vector<int> &v, int k)
{
int n = (int)v.size(); if (n == ) {
return;
}
k = k >= ? k % n : (n - (n - k) % n) % n;
if (k == ) {
return;
}
reverse(v, , n - k - );
reverse(v, n - k, n - );
reverse(v, , n - );
} int main()
{
vector<int> v;
int n, k;
int i; while (cin >> n && n > ) {
v.resize(n);
for (i = ; i < n; ++i) {
cin >> v[i];
}
cin >> k;
rightShift(v, k);
for (i = ; i < n; ++i) {
i ? (cout << ' '), : ;
cout << v[i];
}
cout << endl; v.clear();
} return ;
}
Careercup - Microsoft面试题 - 6282862240202752的更多相关文章
- Careercup - Microsoft面试题 - 6314866323226624
2014-05-11 05:29 题目链接 原题: Design remote controller for me. 题目:设计一个遥控器. 解法:遥控什么?什么遥控?传统的红外线信号吗?我只能随便说 ...
- Careercup - Microsoft面试题 - 6366101810184192
2014-05-10 22:30 题目链接 原题: Design database locks to allow r/w concurrency and data consistency. 题目:设计 ...
- Careercup - Microsoft面试题 - 24308662
2014-05-12 07:31 题目链接 原题: I have heard this question many times in microsoft interviews. Given two a ...
- Careercup - Microsoft面试题 - 5700293077499904
2014-05-12 00:02 题目链接 原题: For a given map (ie Bing map) given longitude/latitude/ how would you desi ...
- Careercup - Microsoft面试题 - 5204967652589568
2014-05-11 23:57 题目链接 原题: identical balls. one ball measurements ........ dead easy. 题目:9个看起来一样的球,其中 ...
- Careercup - Microsoft面试题 - 5175246478901248
2014-05-11 23:52 题目链接 原题: design an alarm clock for a deaf person. 题目:为聋人设计闹钟? 解法:聋人听不见,那么闪光.震动都可行.睡 ...
- Careercup - Microsoft面试题 - 5718181884723200
2014-05-11 05:55 题目链接 原题: difference between thread and process. 题目:请描述进程和线程的区别. 解法:操作系统理论题.标准答案在恐龙书 ...
- Careercup - Microsoft面试题 - 5173689888800768
2014-05-11 05:21 题目链接 原题: Complexity of a function: int func_fibonacci ( int n) { ) { return n; } el ...
- Careercup - Microsoft面试题 - 5428361417457664
2014-05-11 03:37 题目链接 原题: You have three jars filled with candies. One jar is filled with banana can ...
随机推荐
- javaSE第十八天
第十八天 192 1:Map(掌握) 192 (1)定义: 192 (2)Map和Collection的区别? 192 (3)Map接口功能概述(自己补齐) 192 A: ...
- Windows Phone 资源管理与换肤思考
新入手一台Windows 8的笔记本,安装了VS2013后,终于又可以开发WP了.公司暂时不愿意开发WP,那么咱就自行研究吧! 在没有WP开发环境的时候,曾经在WPF尝试了一下换肤功能的实现.最简单的 ...
- 常用的MyEclipse快捷键
在调试程序的时候,我们经常需要注释一些代码,在用Myeclipse编程时,就可以用 Ctrl+/ 为选中的一段代码加上以 // 打头的注释:当需要恢复代码功能的时候,又可以用Ctrl+/ 去掉注释.这 ...
- <b>和<strong>标签区别
简单说, strong是web标准中xhtml的标签,加强语气,起强调作用(默认是采用加粗来实现强调),逻辑标签: b 是html的,bold粗体. web标准主张xhtml不涉及具体的表现形式,“强 ...
- php 数组排序代码
php对数组排序代码. <?phpclass='pingjiaF' frameborder='0' src='http://www.jbxue.com' scrolling='no'> ...
- 最新hosts,更新hosts,可用
点击这里,全选后复制,粘贴到C:\Windows\System32\drivers\etc的hosts里面,把原来的置换了
- scala实现kmeans算法
算法的概念不做过都解释,google一下一大把.直接贴上代码,有比较详细的注释了. 主程序: import scala.io.Source import scala.util.Random /** * ...
- 学习simple.data之基础篇
simple.data是一个轻量级的.动态的数据访问组件,支持.net4.0. 1.必须条件和依赖性: v4.0 or greater of the .NET framework, or v2.10 ...
- MHA在线切换过程
MHA 在线切换是MHA除了自动监控切换换提供的另外一种方式,多用于诸如硬件升级,MySQL数据库迁移等等.该方式提供快速切换和优雅的阻塞写入,无关关闭原有服务器,整个切换过程在0.5-2s 的时间左 ...
- Maven学习随记
慕课网视频教程:http://www.imooc.com/learn/443 ====Maven是什么 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建.报告和文档的软件 ...