社区
数据结构与算法
帖子详情
一道google的面试题(转自瀚海星云)
jiakuant
2007-12-28 04:39:15
加精
输入a_1, a_2, ..., a_n, b_1, b_2, ..., b_n,如何在O(n)的时间,用O(1)的空间,
将这个序列顺序改为a_1, b_1, ..., a_n, b_n。
这个问题在瀚海星云上跟出了好几十的跟帖,看看大家有没有什么好的解法!!!
...全文
10004
229
打赏
收藏
一道google的面试题(转自瀚海星云)
输入a_1, a_2, ..., a_n, b_1, b_2, ..., b_n,如何在O(n)的时间,用O(1)的空间, 将这个序列顺序改为a_1, b_1, ..., a_n, b_n。 这个问题在瀚海星云上跟出了好几十的跟帖,看看大家有没有什么好的解法!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
229 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wwwypy
2008-10-10
打赏
举报
回复
好好看看数据结构上面的题不难做出来!
zsxcn
2008-10-08
打赏
举报
回复
mark
xiaofengsheng
2008-10-08
打赏
举报
回复
[Quote=引用 218 楼 lytxyz 的回复:]
1. X指向a_2,Y指向b_1
2. 交换X与Y指向的两个元素
3. X向后移一个元素
4. X是否与Y指向同一个元素?若是结束,否则继续
5. 交换X与Y指向的两个元素
6. X向后移一个元素,Y向后移一个元素
7. 转到第 2 步
[/Quote]
支持!
xiaofengsheng
2008-10-08
打赏
举报
回复
UP
Norse
2008-10-05
打赏
举报
回复
按这个迭代递推公式似乎是:T(n) = T(n-1)*2,显然不是O(n)
[Quote=引用 44 楼 euroman 的回复:]
用迭代
a1 a2 a3 ... an | b1 b2 b3 ... bn
a1 b1 a3 ... an | a2 b2 b3 ... bn
...
a1 b1 a3 b3 a5 b5 ... a(2k-1) b(2k-1) | a2 b2 a4 b4 ... a(2n) b(2n)
以这个为一次迭代
那么每次迭代就把数组分成两个小的同类型的问题 可以得出第推关系
T(n) = T(n/2) + n
根据算法理论第推关系公式
T(n) = a * T(n/c) + b*n
这里a = 1, c = 2
那么我们有T(n) = T(n/2) + n
由于T(n) = b*n*sum( pow…
[/Quote]
Norse
2008-10-05
打赏
举报
回复
这个第一次迭代只是初始化
Norse
2008-10-05
打赏
举报
回复
也不难,但想来想去都想不出只用一个循环的方法
但可以有多重循环但形如(1/2+1/4...+1/logn)*n的方法,这个数列是收敛的,所以虽然多重循环但依然满足O(n)
crazylightning
2008-10-05
打赏
举报
回复
编程论坛 10334876
群 10334876 (黑客帝国)期待你的加入...
欢迎编程老手一起研讨软件开发中的难点,疑点以及各种稀奇古怪的代码...
本IT论坛仅限于研讨软件相关知识,开发语言、工具不限
(C/C++,C#.net,Java,python,PHP,SQl,xml,AS,JS等)...
sdfiyuejin
2008-10-03
打赏
举报
回复
貌似我逃避问题了
不过,我觉得输入的时候就排好不是更省事吗...
sdfiyuejin
2008-10-03
打赏
举报
回复
是长为2n的数组...
sdfiyuejin
2008-10-03
打赏
举报
回复
2n数组
1 3 5 7 ...
2 4 6 8 ...
lytxyz
2008-10-02
打赏
举报
回复
1. X指向a_2,Y指向b_1
2. 交换X与Y指向的两个元素
3. X向后移一个元素
4. X是否与Y指向同一个元素?若是结束,否则继续
5. 交换X与Y指向的两个元素
6. X向后移一个元素,Y向后移一个元素
7. 转到第 2 步
三翔馆主
2008-10-02
打赏
举报
回复
mark
superxiaomm
2008-09-24
打赏
举报
回复
#include "stdafx.h"
#include "string.h"
#include <string>
#include <iostream>
//std::string Array[12] = {"a1","a2","a3","a4","a5","a6","b1","b2","b3","b4","b5","b6"};
//int length = 12;
//std::string Array[10] = {"a1","a2","a3","a4","a5","b1","b2","b3","b4","b5"};
//int length = 10;
//std::string Array[8] = {"a1","a2","a3","a4","b1","b2","b3","b4"};
//int length = 8;
//std::string Array[6] = {"a1","a2","a3","b1","b2","b3"};
//int length = 6;
//std::string Array[4] = {"a1","a2","b1","b2"};
//int length = 4;
bool odd;
void swap( std::string & a, std::string & b)
{
std::string tmp = "";
tmp = a;
a = b;
b = tmp;
}
int main(int argc, char* argv[])
{
odd = (length / 2) % 2 ? 1 : 0;
int stop = length / 2;
for( int i = 1; i< stop; i=i+2)
{
swap( Array[i],Array[i+stop-1] );
}
int t = 2;
for( ;; t=t+2)
{
if(odd)
{
if( t>= stop -1)
break;
}
else
{
if( t >= 2* (stop - 1))
break;
}
swap( Array[t], Array[stop]);
swap( Array[t+1], Array[stop+1]);
}
if(odd)
{
swap(Array[stop-1],Array[2*(stop-1)]);
for( int j = stop-1; j< 2*(stop-1) - 1; j++)
{
swap( Array[j],Array[j+1]);
}
}
for( int z=0;z<length;z++)
std::cout<< Array[z]<<",";
return 0;
}
测试通过,关键就是区分n的奇偶
lisa9356
2008-09-21
打赏
举报
回复
mark
shiyizhe
2008-09-19
打赏
举报
回复
先对数组a和b内部排序。a1,a2,a3,a4,a5,a6;b1,b2,b3,b4,b5,b6;第一轮结束后变为a1,a4,a2,a5,a3,a6;b1,b4,b2,b5,b3,b6;然后再整合。
a1,a2,a3,a4,a5,a6,a7;b1,b2,b3,b4,b5,b6,b7;第一轮后a1,a5,a2,a6,a3,a7,a4;b4,b1,b5,b2,b6,b3,b7;然后整合。
shiyizhe
2008-09-18
打赏
举报
回复
a数组的刚好是奇数位,b的是偶数位,可以直接算出位置然后放数据吧。
lover_cxy2005
2008-09-16
打赏
举报
回复
mark
ruqifu
2008-09-16
打赏
举报
回复
努力学习中!
ToBeTough
2008-09-15
打赏
举报
回复
链表节点插入可以吗?
加载更多回复(209)
最全的IT公司
面试题
集 CHM版的
搜集了超级多的
面试题
,做成了CHM版,希望对准备面试的朋友有所帮助,主要的分类如下: Java
面试题
,J2EE
面试题
,.net
面试题
,PHP
面试题
,数据库
面试题
,英语面试,外企面试,软件测试
面试题
,Python
面试题
,Oracle
面试题
,MySql
面试题
,Web开发
面试题
,Unix
面试题
,程序员面试,网络技术
面试题
,网络安全
面试题
,Linux
面试题
,Hibernate
面试题
,Spring
面试题
,SQL Server
面试题
,Struts
面试题
,EJB
面试题
本文件已经收集了 http://www.mianwww.com 至 2009年10月27日的所有内容。 有人可能下载后打不开:提示The address is not valid 解决方法: 1. 右键点击下载后的文件,点Properties 属性 2. 点击Unblock 3. 双击重新打开下载的文件
2014年最新JAVA
面试题
汇总经典例子及其答案
最新JAVA
面试题
汇总经典例子及其答案。
Java高频
面试题
【课程介绍】 很多人面试前都会罗各种
面试题
。这些面试资料数量众多,但内容杂,系统性不强。最重要的是很多知识点如果不结合讲解,有些重点内容理解的难度偏大。如果下一次遇到面试,又要重新搜集资料,很多知识要...
C/C++程序设计员应聘常见面试试题深入剖析
C/C++程序设计员应聘常见面试试题深入剖析,不看会后悔!!!!!!!!!
[最新整理公布][汇总II]微软等数据结构+算法面试100题[第1-80题]
昨日,11.19,最新整理了,第61-80题,现在公布上传。 另加上之前公布的第1-60 题,在此做一次汇总上传,以飨各位。 可以这么说,绝大部分的
面试题
,都是这100 道题系列的翻版, 此微软等公司数据结构+算法面试100 题系列,是极具代表性的经典
面试题
。 而,对你更重要的是,我自个还提供了答案下载,提供思路,呵。 所以,这份资料+答案,在网上是独一无二的。 ------------------------------------ 整理资源,下载地址: 答案系列: 1.[最新答案V0.3 版]微软等数据结构+算法面试100 题[第21-40 题答案] http://download.csdn.net/source/2832862 2.[答案V0.2 版]精选微软数据结构+算法面试100 题[前20 题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1 版本,进行的校正与修正。 3.[答案V0.1 版]精选微软数据结构+算法面试100 题[前25 题] http://download.csdn.net/source/2796735 题目系列: 4.[第一部分]精选微软等公司数据结构+算法经典面试100 题[1-40 题] http://download.csdn.net/source/2778852 5.[第1 题-60 题汇总]微软等数据结构+算法面试100 题 http://download.csdn.net/source/2826690 更多资源,下载地址: http://v_july_v.download.csdn.net/ 若你对以上任何题目或任何答案,有任何问题,欢迎联系我: My E-mail: zhoulei0907@yahoo.cn ------------- 作者声明: 本人July 对以上公布的所有任何题目或资源享有版权。转载以上公布的任何一题, 或上传百度文库资源,请注明出处,及作者我本人。 向你的厚道致敬。谢谢。 ---July、2010 年11 月20 日。 ------------------------------------------------------ 各位,若对以上100题任何
一道
,或对已上传的任何一题的答案, 有任何问题,请把你的思路、想法,回复到此帖子上, 微软等100题系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章