爱奇艺电话面试总结

1 struct ST
{
int data;
......
};
void sort_st(vector<ST>& st_arr)
{
......
}
ST结构体的data成员只有0,1,2三种取值,输入st_arr数组中data是乱序的,要求算法使完成排序,要求时间复杂度O(n),空间复杂度O(1)
如原数组[0,1,2,1,0,2,2,1,1]
-->[0,0,2,2,2,1,1,1,1]
思路1:
(1)设置两变量,i用来指向已确定位置,j用来遍历
(2)遍历第一遍将0放到应该位置,再遍历一遍将2放到应该位置
//遍历第一遍
[0,1,2,1,0,2,2,1,1]        //交换
i        j
[0,0,2,1,1,2,2,1,1]
i         j
//遍历第二遍
[0,0,2,1,1,2,2,1,1]        //交换
i     j
[0,0,2,2,1,1,2,1,1]
i     j
......
思路2:
思路1需要遍历2遍,面试官说可遍历1遍
参考#2GungnirLaevatain

2 百G文件,找出出现次数前十的字符串(海量数据处理)
http://blog.csdn.net/fycy2010/article/details/46945641

再没啥说的了,静下心,多刷刷牛客题吧!
全部评论
感觉是不是可以三个指针i,j,k。i确定头,j进行遍历,k确定尾,遍历中,将j指向的0和i指向的头进行交换,j指向的2和k指向的尾进行交换,当j和k指向同一个时结束,这样一遍遍历就可以了吧
点赞 回复 分享
发布于 2017-02-22 19:02
实习还是校招。
点赞 回复 分享
发布于 2017-02-22 17:47
第二题我也遇到过。
点赞 回复 分享
发布于 2017-02-22 23:35
第一题桶排可行吗
点赞 回复 分享
发布于 2017-02-23 08:14
其他东西还问了什么呢?
点赞 回复 分享
发布于 2017-02-23 08:29

相关推荐

点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务