面试题

面试题

【备战秋招】精选【机器学习】面试干货系列100题

机器学习手机用户527000 发表了文章 • 0 个评论 • 291 次浏览 • 2019-08-19 14:57 • 来自相关主题


100题请下载附件PDF!100题请下载附件PDF!100题请下载附件PDF!

【部分试题展示】
下列哪种方法可以用来减小过拟合?(多选)
A. 更多的训练数据
B. L1 正则化
C. L2 正则化
D. 减小模型的复杂度
答案:ABCD

解析:增加训...
查看更多

数据分析岗笔试面试题

面试July 回复了问题 • 9 人关注 • 2 个回复 • 22057 次浏览 • 2018-06-12 12:17 • 来自相关主题

一起刷leetcode(743):Network Delay Time——Dijkstra算法的堆优化(附动画)

回复

leetcode/kagglesubVoid 发起了问题 • 2 人关注 • 0 个回复 • 3191 次浏览 • 2018-04-25 05:56 • 来自相关主题

腾讯面试题:给40亿个不重复的unsigned int的数,没排序,然后再给一个数,如何快速间断这个数是否在那40亿个数中

面试BrianHuang 回复了问题 • 16 人关注 • 6 个回复 • 6571 次浏览 • 2018-04-07 16:17 • 来自相关主题

一起刷leetcode(78):Subsets

leetcode/kagglePolorGhost 回复了问题 • 7 人关注 • 4 个回复 • 3057 次浏览 • 2018-02-24 22:20 • 来自相关主题

『阿里面试题』组合排序问题

面试微信用户317641 回复了问题 • 17 人关注 • 6 个回复 • 4582 次浏览 • 2017-08-14 10:46 • 来自相关主题

廿青春,共前行——2018网易互联网校招内推开启

回复

内推小易推推 回复了问题 • 2 人关注 • 1 个回复 • 1141 次浏览 • 2017-07-29 11:58 • 来自相关主题

新浪微博的机器学习工程师 和 阿里巴巴高德 的机器学习工程师 去哪个?技术哪个强一点?还有口碑什么的?多谢大神指教

面试寒老师 回复了问题 • 4 人关注 • 2 个回复 • 1619 次浏览 • 2016-10-24 10:40 • 来自相关主题

C++面试知识点

回复

面试JoyceWYJ 发起了问题 • 4 人关注 • 0 个回复 • 1686 次浏览 • 2016-07-08 12:47 • 来自相关主题

一起刷LeetCode(226): Invert Binary Tree

leetcode/kaggleJoyceWYJ 回复了问题 • 2 人关注 • 2 个回复 • 865 次浏览 • 2016-06-29 18:44 • 来自相关主题

干货分享——机器学习与大数据的面试问题与答题思路

面试wuyou123 回复了问题 • 14 人关注 • 2 个回复 • 2152 次浏览 • 2016-06-14 21:33 • 来自相关主题

阿里巴巴实习面经——天猫部

回复

面试JoyceWYJ 发起了问题 • 3 人关注 • 0 个回复 • 2124 次浏览 • 2016-05-25 11:02 • 来自相关主题

[阿里]逆序打印整数,要求递归实现

面试小付fu 回复了问题 • 33 人关注 • 24 个回复 • 4810 次浏览 • 2016-03-14 21:15 • 来自相关主题

#每日一面BAT#第24题 约数博弈

面试hulala 回复了问题 • 7 人关注 • 2 个回复 • 2183 次浏览 • 2016-03-11 18:30 • 来自相关主题

抛个问题出来,大家想想

面试July 回复了问题 • 7 人关注 • 5 个回复 • 2445 次浏览 • 2015-10-05 14:44 • 来自相关主题

[大众点评]N个未排序的整数,在线性时间内,求N个整数在数轴上相邻两个数之间的最大差值。

面试邹博 回复了问题 • 5 人关注 • 3 个回复 • 2327 次浏览 • 2015-09-30 17:15 • 来自相关主题

[小米]首尾相连数组的最大子数组和

面试zhangenwei 回复了问题 • 4 人关注 • 2 个回复 • 2133 次浏览 • 2015-09-12 19:01 • 来自相关主题

【腾讯面试】 如何对1亿个QQ号进行排序

面试czmbit 回复了问题 • 42 人关注 • 15 个回复 • 8530 次浏览 • 2015-09-10 19:56 • 来自相关主题

【腾讯】新闻推荐中按照一定策略从排好序的新闻列表中选择新闻

面试pnghwang 回复了问题 • 5 人关注 • 2 个回复 • 1818 次浏览 • 2015-08-31 19:57 • 来自相关主题

[百度]随机播放音乐(随机数相关)

面试klzhan 回复了问题 • 74 人关注 • 25 个回复 • 8961 次浏览 • 2015-08-30 17:29 • 来自相关主题

腾讯面试题:字符串匹配。

面试lidasong 回复了问题 • 29 人关注 • 10 个回复 • 6668 次浏览 • 2015-08-27 09:35 • 来自相关主题

#每日一面BAT#第10题:汽车最大补给

算法zhouge 回复了问题 • 19 人关注 • 5 个回复 • 2434 次浏览 • 2015-08-26 19:39 • 来自相关主题

[阿里巴巴二面]两个字符串A、B,从A中剔除存在于B中的字符。

面试sd1527907 回复了问题 • 37 人关注 • 16 个回复 • 5664 次浏览 • 2015-08-26 17:11 • 来自相关主题

【微软】设计魔方的数据结构

面试solocode 回复了问题 • 9 人关注 • 2 个回复 • 3051 次浏览 • 2015-08-25 18:48 • 来自相关主题

#每日一面BAT#第23题 区间最大重叠

回复

面试cpcs 回复了问题 • 5 人关注 • 1 个回复 • 3119 次浏览 • 2015-08-22 22:36 • 来自相关主题

阿里面试题:强强对话的概率

面试rcgn 回复了问题 • 33 人关注 • 21 个回复 • 5593 次浏览 • 2015-08-20 17:00 • 来自相关主题

2015年阿里研发工程师实习笔试附加题

面试张小朋要奋斗 回复了问题 • 34 人关注 • 13 个回复 • 8221 次浏览 • 2015-08-19 11:42 • 来自相关主题

阿里云-多线程设计题

面试Wen_nian 回复了问题 • 9 人关注 • 2 个回复 • 2514 次浏览 • 2015-08-16 15:14 • 来自相关主题

设计题-服务器流量统计器

回复

面试talentlei 发起了问题 • 4 人关注 • 0 个回复 • 1836 次浏览 • 2015-08-13 16:20 • 来自相关主题

#每日一面BAT#第22题 木杆蚂蚁

面试YangL 回复了问题 • 6 人关注 • 2 个回复 • 2135 次浏览 • 2015-08-13 08:46 • 来自相关主题

#每日一面BAT#第21题 下标三元组

回复

面试cpcs 回复了问题 • 7 人关注 • 1 个回复 • 2302 次浏览 • 2015-08-12 04:42 • 来自相关主题

#每日一面BAT#第11题 环形跑道

面试YangL 回复了问题 • 8 人关注 • 3 个回复 • 2745 次浏览 • 2015-08-11 21:04 • 来自相关主题

#每日一面BAT#第20题 绳子覆盖点

回复

面试cpcs 回复了问题 • 5 人关注 • 1 个回复 • 1514 次浏览 • 2015-08-11 13:23 • 来自相关主题

2015阿里巴巴校招电面一面题目分享~求细致完整的解答~

面试YangL 回复了问题 • 16 人关注 • 4 个回复 • 3855 次浏览 • 2015-08-10 22:35 • 来自相关主题

#每日一面BAT#第19题 子序列的个数

回复

算法cpcs 回复了问题 • 6 人关注 • 1 个回复 • 1970 次浏览 • 2015-08-10 02:32 • 来自相关主题

#每日一面BAT#第18题 取石子游戏

面试柳梦璃 回复了问题 • 9 人关注 • 3 个回复 • 1800 次浏览 • 2015-08-08 22:47 • 来自相关主题

#每日一面BAT#第17题 RGB字符串

面试天天 回复了问题 • 6 人关注 • 2 个回复 • 1745 次浏览 • 2015-08-08 19:34 • 来自相关主题

#每日一面BAT#第1题:概率与集合元素个数

算法Janvn 回复了问题 • 10 人关注 • 4 个回复 • 2407 次浏览 • 2015-08-07 18:56 • 来自相关主题

#每日一面BAT#第16题 最大指数

面试EagleSky 回复了问题 • 5 人关注 • 1 个回复 • 1705 次浏览 • 2015-08-07 10:18 • 来自相关主题

#每日一面BAT#第15题 a[x] == x

面试cpcs 回复了问题 • 5 人关注 • 2 个回复 • 1760 次浏览 • 2015-08-06 17:08 • 来自相关主题

用公平的硬币模拟 1/Pi概率?

算法cpcs 回复了问题 • 5 人关注 • 2 个回复 • 2109 次浏览 • 2015-08-06 13:51 • 来自相关主题

#每日一面BAT#第14题 机器人指令序列

回复

面试cpcs 回复了问题 • 2 人关注 • 1 个回复 • 1717 次浏览 • 2015-08-05 11:34 • 来自相关主题

#每日一面BAT#第3题:循环染色问题

算法天天 回复了问题 • 11 人关注 • 4 个回复 • 2754 次浏览 • 2015-08-04 23:34 • 来自相关主题

#每日一面BAT#第13题 方程的正整数解

面试cpcs 回复了问题 • 5 人关注 • 3 个回复 • 1576 次浏览 • 2015-08-04 11:12 • 来自相关主题

2015百度校招一面题目分享~

面试园园啊圈圈_oo 回复了问题 • 15 人关注 • 3 个回复 • 3846 次浏览 • 2015-08-04 10:41 • 来自相关主题

『腾讯面试题』类成员存储问题。

面试天天 回复了问题 • 8 人关注 • 2 个回复 • 3500 次浏览 • 2015-08-03 23:56 • 来自相关主题

#每日一面BAT#第12题 文章与词

回复

面试cpcs 回复了问题 • 2 人关注 • 1 个回复 • 1412 次浏览 • 2015-08-03 12:15 • 来自相关主题

[腾讯面试题]一个大小为N的数组,里面是N个整数,怎样去除重复。

面试天天 回复了问题 • 41 人关注 • 14 个回复 • 6310 次浏览 • 2015-07-28 09:10 • 来自相关主题

一道关于数据库的面试题

面试微博用户7949 回复了问题 • 6 人关注 • 2 个回复 • 1673 次浏览 • 2015-07-24 13:58 • 来自相关主题

[百度面试题]数组A中任意两个相邻元素大小相差1,在其中查找某个数。

面试Miku 回复了问题 • 43 人关注 • 19 个回复 • 5741 次浏览 • 2015-07-20 17:57 • 来自相关主题

条新动态, 点击查看
July

July 回答了问题 • 2015-01-24 13:02 • 7 个回复 不感兴趣

给你印象最深的一道面试题是什么?

赞同来自:

刚毕业那会,面过不少公司,没看到什么好的面试题。
稍有点印象的是杨氏矩阵查找。

在一个m行n列的二维数组中,每一行都按照从左到右递增的顺序排列,每一列都按照从上到下递增的顺序排列。现输入这样的一个二维数组和一个整数,请完成一个函数,判断数组中是否含有该整数。... 显示全部 »
刚毕业那会,面过不少公司,没看到什么好的面试题。
稍有点印象的是杨氏矩阵查找。

在一个m行n列的二维数组中,每一行都按照从左到右递增的顺序排列,每一列都按照从上到下递增的顺序排列。现输入这样的一个二维数组和一个整数,请完成一个函数,判断数组中是否含有该整数。
例如给定如下图所示的二维数组,它的每一行、每一列都递增排序。如果在这个数组中查找数字6,则返回true;如果查找数字5,则由于该数组不含有数字5,返回false。
** 插入的附件 **
虽然后来知道这题有两种解法:
解法一:分治法
以查找数字6为例,因为矩阵的行和列都是递增的,所以整个矩阵的对角线上的数字也是递增的,故我们可以在对角线上进行二分查找:如果要找的数的大小介于对角线上相邻的两个数之间,则可以排除掉左上和右下的两个小矩形,而在左下和右上的两个小矩形内继续递归查找。如下图所示:
** 插入的附件 **
解法二:定位法
如下图所示,首先直接定位到矩阵中最右上角的元素,如果这个元素比要找的数6大就往左走,比要找的数6小就往下走,直到找到要找的数字6为止。这个方法的时间复杂度是O(m+n)。
** 插入的附件 **
但当时确实没有想到解法二。
helifort

helifort 回答了问题 • 2015-01-28 18:40 • 6 个回复 不感兴趣

Yahoo on site 面试题2道 最新

赞同来自:

第一题,如果没有空间限制,最简单的是用一个stack 保存前半部分的节点,然后挨个比较后半部的节点,要注意如果奇数情况的处理

要求空间O(1)的话,就比较麻烦,算法是这样
1 快慢指针找到中点,把链表分成两部分
2 原地翻转后部分链表,重点是要原地翻转,所以... 显示全部 »
第一题,如果没有空间限制,最简单的是用一个stack 保存前半部分的节点,然后挨个比较后半部的节点,要注意如果奇数情况的处理

要求空间O(1)的话,就比较麻烦,算法是这样
1 快慢指针找到中点,把链表分成两部分
2 原地翻转后部分链表,重点是要原地翻转,所以不能用递归,不过我觉得递归还不好理解,循环好理解,以下是原地翻转链表的代码,是这个算法的核心,这个搞定其他都不是很麻烦。

{{{
ListNode current = head;
ListNode pre = null;
ListNode next = null;

while (current != null) {
//record second node
next = current.next;
current.next = pre;
pre = current;
current = next;
}
return pre;
}}}

3 比较前部分和翻转后的部分的节点是否相等
4 再把后部分翻转回来接上
1,对集合S进行排序(快排),从小到大排序
2,让C指向集合最后一个元素(最大元素)
3,让i指向S中第一个元素,让j指向C的前一个元素
4,如果,A[i]+A[j]==C则return C;
5,如果if(A[i]+A[j]<C)则i++;
6,如果i... 显示全部 »
1,对集合S进行排序(快排),从小到大排序
2,让C指向集合最后一个元素(最大元素)
3,让i指向S中第一个元素,让j指向C的前一个元素
4,如果,A[i]+A[j]==C则return C;
5,如果if(A[i]+A[j]<C)则i++;
6,如果if(A[i]+A[j]>C)则j--;
7,直道i>=j依然没有找到符合条件的元素,则C在S中向前移动一位,跳至步骤3

{{{
/+++++++++++++++++++++++++++++++++++++++++++++++++++++++
* 日期:2015-01-29
* 作者:SJF0115
* 题目: 在由N个正整数的集合S中,找出最大元素C,满足C=A+B,其中A,B都是集合S中的元素
* 来源:百度
* 博客:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++/
#include <iostream>
#include <algorithm>
using namespace std;

int FindSum(int A[],int n){
// 排序
sort(A,A+n);
int left,right,sum;
// i = C
for(int i = n - 1;i >= 2;--i){
left = 0,right = i - 1;
// 判断是否有A + B = i
while(left < right){
sum = A[left] + A[right];
if(sum == A[i]){
return A[i];
}//if
else if(sum > A[i]){
--right;
}
else{
++left;
}
}//while
}//for
return -1;
}

int main(){
int A[] = {5,7,3,0,9,11,8,13,100};
int n = 9;
cout<<FindSum(A,n)<<endl;;
return 0;
}

}}}
==========================
声明:以下是我不负责任的瞎扯
==========================

首先要知道一个东西:
要判断一个数字是否为素数所要花费的时间是O(1)
如果你不知道这个,那么随便拿一本厚一点的算法书(... 显示全部 »
==========================
声明:以下是我不负责任的瞎扯
==========================

首先要知道一个东西:
要判断一个数字是否为素数所要花费的时间是O(1)
如果你不知道这个,那么随便拿一本厚一点的算法书(注意,不是数据结构书),一般会在“随机算法”章节

==========================================
解法一(从素数角度出发):
首先,任何一个大于6的素数都可以写成6n±1的形式,为什么呢?因为任何一个数都可以写成6n, 6n+1,6n+2, 6n+3, 6n+4, 6n+5这几个形式,而其中6n, 6n+2, 6n+3, 6n+4这几个形式的数都不可能是素数,因为都能被2或3整除。而6n+5实际上也可以看做是6n-1,证明完毕。
但是这是一个必要不充分条件,也就是

一个数是素数,则一定可以写成6n±1中的一个形式
但是一个数可以写成6n±1形式,但他不一定是素数

所以我们要加入素性判断

然后你就在[6, N]这个区间中寻找满足6n±1形式的数,然后对这些数进行素性判断,最后就得到[6, N]区间的所有素数的
得到所有素素,只需要对他们两两求和就行啦。

复杂度分析比较麻烦,涉及到[6, N]中有多少个素数,我不会
但是其复杂度会在O(N)到O(N^2)以内

============================================
解法二(从和角度出发):
你听说过哥德巴赫猜想吗?

哥德巴赫猜想:任一大于2的整数都可写成两个质数之和。
欧拉对这个猜想等价出了另外一个版本:即任一大于2的偶数都可写成两个素数之和

所以,你只需要找到[6, N]区间内最大的两个素数,我假设为p和q,那么满足题目所求的数就在[18, p+q]区间内的所有偶数
注:18=7+11,此外这里有bug的,留后面说

现在的问题是,找到最大的那两个素数需要的时间是多久?
这涉及到一个问题:
两个相邻的素数间隔是多大?
这个问题似乎现在也没有解决,不过你可以从N往下一个一个按照6n±1地形式进行素性测试找出最大那两个的嘛(好丢脸的想法,逃)

好了,找到区间的上界了(也就是p+q),那么剩下一个BUG:题目说“两两之和”,所以这些偶数就不能是同一个素数相加啦,那你对这些偶数除2,然后素性判断就行啦(好丢脸,应该有更好的办法)



其实这里面最致命的BUG是:
我们使用了一个未被证明的猜想

但是你要这么想,我的算法是基于这个猜想了,要是出了问题能说明这个猜想不成立,那么...........................




你还去百度干什么

===================================

再次声明:
以上是我瞎扯的,别轻信=。=
升

回答了问题 • 2015-02-03 10:30 • 25 个回复 不感兴趣

[百度]随机播放音乐(随机数相关)

赞同来自:

(1)1000首歌曲编号,从1至1000
(2)产生一个1至1000的随机数,表示要播放的歌曲,这时,所有的歌曲被选中播放的概率是相同的
(3)假设选定的歌曲是54号,它的豆瓣评分是9.5分,那么此时再随机生成一个1至100的随机数,如果随机数小于等于95,那... 显示全部 »
(1)1000首歌曲编号,从1至1000
(2)产生一个1至1000的随机数,表示要播放的歌曲,这时,所有的歌曲被选中播放的概率是相同的
(3)假设选定的歌曲是54号,它的豆瓣评分是9.5分,那么此时再随机生成一个1至100的随机数,如果随机数小于等于95,那么就播放这首歌曲,如果随机数大于95,则重复1,2,3的步骤,直至找到一首可以播放的歌曲

备注:两首歌曲,评分分别为8.0,9.5,他们被选中的概率为1/1000,选中后还要产生一次随机数,被播放的概率分别为80%,95%,选中概率相同,播放概率比恰好是分数比值
jefflee

jefflee 回答了问题 • 2015-02-15 21:23 • 4 个回复 不感兴趣

一道有趣的面试题

赞同来自:

{{{
int randN( int n )
{
if( n == 0 )
return 0;
if( n < 0 )
return -randN(-n);
... 显示全部 »
{{{
int randN( int n )
{
if( n == 0 )
return 0;
if( n < 0 )
return -randN(-n);

int d = 0;
int n2 = n;

while( n2 > 0 ){
n2 = n2>>1;
d++;
}

int i, x;


while(1){
x = rand1();
for(i = 0; i < d - 1; i++){
x <<= 1;
x = x | rand1();
}
if( x <= n)
return x;
}
}
}}}
sjf0115

sjf0115 回答了问题 • 2015-02-14 11:04 • 10 个回复 不感兴趣

腾讯面试题:字符串匹配。

赞同来自:

**思路:**

假定字符串中都是ASCII字符。用一个数组来计数,前者加,后者减,全部为0则匹配。

**代码**
{{{
/*---------------------------------------------
* 日期:2015-02-14
*... 显示全部 »
**思路:**

假定字符串中都是ASCII字符。用一个数组来计数,前者加,后者减,全部为0则匹配。

**代码**
{{{
/*---------------------------------------------
* 日期:2015-02-14
* 作者:SJF0115
* 题目:字符串匹配
* 来源:腾讯
* 博客:http://blog.csdn.net/SunnyYoona/article/details/43816419
-----------------------------------------------*/
#include <iostream>
#include <cstring>
using namespace std;

class Solution {
public:
bool StrMatch(string str1,string str2){
int size1 = str1.size();
int size2 = str2.size();
if(size1 <= 0 || size2 <= 0 || size1 != size2){
return false;
}//if
int count[256];
// 初始化
memset(count,0,sizeof(count));
// 前者加
for(int i = 0;i < size1;++i){
++count[str1[i]];
}//for
//后者减
for(int i = 0;i < size2;++i){
--count[str2[i]];
}//for
// 全部为0则匹配
for(int i = 0;i < 256;++i){
if(count[i] != 0){
return false;
}//if
}//for
return true;
}
};


int main() {
Solution solution;
string str1("afafafa");
string str2("afafaf");
cout<<solution.StrMatch(str1,str2)<<endl;
}
}}}
如果A、B中出现的字符串有一个限制的话,比如都是ASCII码,那么我们可以做一个bitmap,开一个大小为N(如ASCII码N为127)的布尔数组分别表示N个字符是否在B中出现,然后扫描B一次扫描A一次就可以了,这样也算空间复杂度为o(1).

实在不行就先对... 显示全部 »
如果A、B中出现的字符串有一个限制的话,比如都是ASCII码,那么我们可以做一个bitmap,开一个大小为N(如ASCII码N为127)的布尔数组分别表示N个字符是否在B中出现,然后扫描B一次扫描A一次就可以了,这样也算空间复杂度为o(1).

实在不行就先对B做一遍快排,时间复杂度nlogn空间复杂度O(1),在对A中每个元素在B中做二分查找看是否有重复,这时最终的复杂度为(m+n)logn。
**根据 @Menson 建议优化**

{{{
if ( A[0]-t ) % 2 != 0:
i = 1
else:
i = 0
while i < len(A):
if A[i... 显示全部 »
**根据 @Menson 建议优化**

{{{
if ( A[0]-t ) % 2 != 0:
i = 1
else:
i = 0
while i < len(A):
if A[i] == t:
break
i += max( abs(A[i]-t), 2 )
}}}
最坏时间复杂度 O(N): 如在 [1,2,1,2,1,2,1,2,1,0] 里找0
如果限制范围是 0~(N-1)的话 (或者1~N,或者别的可以1-1映射到0~(N-1)的数,道理是一样的),可以用把i放到A[i]的做法来去重。
如果不限制范围,恐怕做不到时间O(n),空间O(1)
如果限制范围是 0~(N-1)的话 (或者1~N,或者别的可以1-1映射到0~(N-1)的数,道理是一样的),可以用把i放到A[i]的做法来去重。
如果不限制范围,恐怕做不到时间O(n),空间O(1)
LostOsiris

LostOsiris 回答了问题 • 2015-03-13 09:48 • 6 个回复 不感兴趣

『阿里面试题』组合排序问题

赞同来自:

搬运微博上一个思路。
@接下来的路才真正的开始 :4场。一共五个人,每2个人之间要打2场,分别是红蓝、蓝红,即一共要打(4+3+2+1)*2=20。如果1、4分组,每次打4场;如果2、3分组,每次打6场,故选2、3分组,最少要4场,才能大于20,所以4场。

... 显示全部 »
搬运微博上一个思路。
@接下来的路才真正的开始 :4场。一共五个人,每2个人之间要打2场,分别是红蓝、蓝红,即一共要打(4+3+2+1)*2=20。如果1、4分组,每次打4场;如果2、3分组,每次打6场,故选2、3分组,最少要4场,才能大于20,所以4场。

建议大家都在社区里讨论,方便知识沉淀。在微博讨论,容易把知识淹没。
wsk

wsk 回答了问题 • 2015-03-16 09:58 • 8 个回复 不感兴趣

[阿里]统计在线人

赞同来自:

uid是可以忽略的,就好像坐车一样,一个人上车,另一个人下车,车内总人数是不变的。
用bit 1代表登陆操作,0代表登出操作,整个可以表达为如下的数据结构
** 插入的附件 **
可以将log文件预处理一次,划分出m个时间段,预先统计出各个时... 显示全部 »
uid是可以忽略的,就好像坐车一样,一个人上车,另一个人下车,车内总人数是不变的。
用bit 1代表登陆操作,0代表登出操作,整个可以表达为如下的数据结构
** 插入的附件 **
可以将log文件预处理一次,划分出m个时间段,预先统计出各个时间段的初始状态,做分布查询
16个数两两比较,8次
胜出8个数再两两,4次
4个,2次,
2个,1次
得到最大A,第二大的应该是和A比较过的数,从第一轮开始共4个数,3次得到其中最大的,则为第二大
总共为18次?

没细想,回头验证正确性
16个数两两比较,8次
胜出8个数再两两,4次
4个,2次,
2个,1次
得到最大A,第二大的应该是和A比较过的数,从第一轮开始共4个数,3次得到其中最大的,则为第二大
总共为18次?

没细想,回头验证正确性
dugucloud

dugucloud 回答了问题 • 2015-03-24 15:04 • 24 个回复 不感兴趣

[阿里]逆序打印整数,要求递归实现

赞同来自:

{{{
>>> def revprint(x):
... str = chr(x % 10 + ord('0'))
... if x >= 10:
... str += revprint(x / ... 显示全部 »
{{{
>>> def revprint(x):
... str = chr(x % 10 + ord('0'))
... if x >= 10:
... str += revprint(x / 10)
... return str
...
>>> revprint(1243424)
'4243421'
>>>
}}}
我简单猜一下,1到50之间的奇数:

第1步、排除偶数
{{{
50个数,25个奇数,25个偶数

用1代表一个奇数,用0代表一个偶数,-代表二者的差的绝对值

1-0=1 消掉一个偶数
1-1=0 消掉两个奇数
... 显示全部 »
我简单猜一下,1到50之间的奇数:

第1步、排除偶数
{{{
50个数,25个奇数,25个偶数

用1代表一个奇数,用0代表一个偶数,-代表二者的差的绝对值

1-0=1 消掉一个偶数
1-1=0 消掉两个奇数
0-0=0 消掉一个偶数

只能成对地消掉奇数,因此25个奇数,导致最终剩下的数必是奇数
}}}
第2步、举例生成所有奇数
{{{
我们以47为例,49-2=47
48-1=47 50-3=47
4-3=1 6-5=1
...
45-44=1 47-46=1
两个47可以抵消,其他的我们将相邻两个取出,差为1,这些1一共有22组,可以全部抵消,因此47存在
按此方法应该可以生成1-49的奇数
}}}
cpcs

cpcs 回答了问题 • 2015-04-15 22:50 • 21 个回复 不感兴趣

阿里面试题:强强对话的概率

赞同来自:

个人观点 假设A, B, C是强队
D, E, F, G, H是弱队
我们把A B C找弱队匹配起来 (剩下的两个弱队匹配), 方案是P(5, 3) = 5 * 4 * 3 = 60种。
所有的match方法是 7 * 5 * 3 * 1 = 105种
所以... 显示全部 »
个人观点 假设A, B, C是强队
D, E, F, G, H是弱队
我们把A B C找弱队匹配起来 (剩下的两个弱队匹配), 方案是P(5, 3) = 5 * 4 * 3 = 60种。
所有的match方法是 7 * 5 * 3 * 1 = 105种
所以 有105 - 60 = 45 种方式强强联合
概率是 45 / 105 = 3 / 7
haoranliu1990

haoranliu1990 回答了问题 • 2015-04-22 22:07 • 15 个回复 不感兴趣

【腾讯面试】 如何对1亿个QQ号进行排序

赞同来自:

感觉可以有好几种方法。
1)楼主说的用位图。
2)外排。
3)1亿个qq号,按 1亿个unsigned int算,就是 4 bytes * 10 ^ 8 约等于400MB,直接内存里快排应该也行吧。
不知道面试官的要求和限制是什么。
感觉可以有好几种方法。
1)楼主说的用位图。
2)外排。
3)1亿个qq号,按 1亿个unsigned int算,就是 4 bytes * 10 ^ 8 约等于400MB,直接内存里快排应该也行吧。
不知道面试官的要求和限制是什么。
直接上位图了

开512M的空间, 刚好2^32个bit, 每个bit对应一个数, 一开始全为0
然后读这40亿个数, 读一个就把对应的bit置为1

然后直接查对应的bit是0还是1, 就好了
直接上位图了

开512M的空间, 刚好2^32个bit, 每个bit对应一个数, 一开始全为0
然后读这40亿个数, 读一个就把对应的bit置为1

然后直接查对应的bit是0还是1, 就好了
邹博

邹博 回答了问题 • 2015-07-01 19:03 • 4 个回复 不感兴趣

#每日一面BAT#第1题:概率与集合元素个数

赞同来自:

参考答案:
** 插入的附件 **
** 插入的附件 **
** 插入的附件 **
参考答案:
** 插入的附件 **
** 插入的附件 **
** 插入的附件 **
邹博

邹博 回答了问题 • 2015-07-03 09:52 • 6 个回复 不感兴趣

#每日一面BAT#第2题:三字符构成的字符串个数

赞同来自:

**参考答案解析:**

** 插入的附件 **
** 插入的附件 **
** 插入的附件 **
** 插入的附件 **
** 插入的附件 **
[atta... 显示全部 »
**参考答案解析:**

** 插入的附件 **
** 插入的附件 **
** 插入的附件 **
** 插入的附件 **
** 插入的附件 **
** 插入的附件 **
** 插入的附件 **
邹博

邹博 回答了问题 • 2015-07-05 00:29 • 4 个回复 不感兴趣

#每日一面BAT#第3题:循环染色问题

赞同来自:

@BobLee赞!
参考解析:
** 插入的附件 **
** 插入的附件 **
** 插入的附件 **
** 插入的附件 **
** 插入的附件 **
@BobLee赞!
参考解析:
** 插入的附件 **
** 插入的附件 **
** 插入的附件 **
** 插入的附件 **
** 插入的附件 **
警示:各位的所有作答结果我们都已在第一时间截图保存(如上述帖子的最下面所示),而根据比赛规则“答题有效时间2个小时(14:00~16:00),一经作答,不得修改(否则取消掉一二三等奖的评奖资格)”,故请作答后,切勿修改。
16:00整,有效答题时间截止,公布正... 显示全部 »
警示:各位的所有作答结果我们都已在第一时间截图保存(如上述帖子的最下面所示),而根据比赛规则“答题有效时间2个小时(14:00~16:00),一经作答,不得修改(否则取消掉一二三等奖的评奖资格)”,故请作答后,切勿修改。
16:00整,有效答题时间截止,公布正确答案,和一二三等奖的获得者3人。(更新:已经公布在上述帖子最后)
17:00整,公布被随机抽中的5位作答幸运者。
自己的回答,非标准,仅供参考。

1、构造新对象,将对象的数据成员赋初值
2、对象过期时,程序自动调用负责完成清理工作。析构函数先由用户代码释放对象堆内存,再程序自动释放对象栈内存。
3、内存分配方式有三种:
(1) 从静态存储区域分配。内存在程序编译的时候就... 显示全部 »
自己的回答,非标准,仅供参考。

1、构造新对象,将对象的数据成员赋初值
2、对象过期时,程序自动调用负责完成清理工作。析构函数先由用户代码释放对象堆内存,再程序自动释放对象栈内存。
3、内存分配方式有三种:
(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。
(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
(3) 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc 或new 申请任意多少的内存,程序员自己负责在何时用free 或delete 释放内存。
4、有两种主要体现:
  (1)方法的多态性:
  a)、重载
  b)、覆盖
 (2)对象的多态性
  a)、向上转型
  b)、向下转型
5、1、list是存储单列数据的集合,map是存储键和值这样的双列数据的集合,
2、List中存储的数据是有顺序,并且允许重复;Map中存储的数据是没有顺序的,其键是不能重复的,它的值是可以有重复的,是key-value组成的键值对;
3、List接口继承collection接口,Map是个顶级接口。List此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数 索引(在列表中的位置)访问元素,并搜索列表中的元素;map接口将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值
cpcs

cpcs 回答了问题 • 2015-08-02 00:21 • 3 个回复 不感兴趣

#每日一面BAT#第11题 环形跑道

赞同来自:

答案
如果把每个储油点的油量减去到下一个储油点的耗油量当成一个变量a[i],则我们有
a[1] + a[2] + ... + a[n] = 0 因为全部油刚好够一圈,问题是这个有正有负数。
我们假设A = a[1] + a[2] + ... + a[k -... 显示全部 »
答案
如果把每个储油点的油量减去到下一个储油点的耗油量当成一个变量a[i],则我们有
a[1] + a[2] + ... + a[n] = 0 因为全部油刚好够一圈,问题是这个有正有负数。
我们假设A = a[1] + a[2] + ... + a[k - 1]是前缀的最小值,并且假设A<0,因为如果A>=0,则从第一个储油点开始走,不会出现负数,这个储油点就是解了。
我们令B=a[k] + a[k + 1] + ... + a[n], 则B = -A >= 0
我们考虑 B的每个前缀
a[k], a[k] + a[k + 1], a[k] + a[k + 1] + a[k + 2],....,B, 这些前缀必须都是非负数,因为如果前缀有一个负数的x的话,从a[1]开始的前缀和A + x < A,与A最小矛盾。
我们再继续
B + a[1], B + a[1] + a[2], ..... B + A
因为从B开始加的那部分就是从a[1]开始的前缀,我们知道A是最小的,所以这串数的最小值是A + B = 0,这就证明了从a[k]开始出发,加出来的数不会出现负数。所以k是一个解。
我们这个算法的时间复杂度是O(n),因为我们只需要自己加一次把和最小的位置找出来就可以了。
另外,我们其实并没有规定顺时针还有逆时针行走,所以可以分别考虑求出不同方向行驶的出发点。
cpcs

cpcs 回答了问题 • 2015-08-03 12:15 • 1 个回复 不感兴趣

#每日一面BAT#第12题 文章与词

赞同来自:

答案: 对词建立倒排索引。
即 建立list
word1: p1,1, p1,2, p1,3...
word2: p2,1, p2,2, p2,3...
word3:...

word后面的列表表示这个词出现的位置。
假设要包含n个词,设置n个指针,从每个词的... 显示全部 »
答案: 对词建立倒排索引。
即 建立list
word1: p1,1, p1,2, p1,3...
word2: p2,1, p2,2, p2,3...
word3:...

word后面的列表表示这个词出现的位置。
假设要包含n个词,设置n个指针,从每个词的列表头开始指向。
可行的答案是max(P) - min(P)。
然后类似归并排序,每次移动位置最小的指针,让它沿着列表指向后一个位置……
如此不断移动指针,直到有一个列表走到末尾即可。
遂心---

遂心--- 回答了问题 • 2015-08-03 17:00 • 3 个回复 不感兴趣

#每日一面BAT#第13题 方程的正整数解

赞同来自:

整数划分问题:令y1 = x1 - 2 >= 0,y2 = x2 >= 0,y3 = x3 + 5 >= 0,y4 = x4 - 8 >= 0;故该问题可转换为y1 + y2 + y3 + y4 = 25的整数解,由整数划分公式num ... 显示全部 »
整数划分问题:令y1 = x1 - 2 >= 0,y2 = x2 >= 0,y3 = x3 + 5 >= 0,y4 = x4 - 8 >= 0;故该问题可转换为y1 + y2 + y3 + y4 = 25的整数解,由整数划分公式num = C(n + r - 1,r),其中n为变量的个数即4,r为25;故num = C(4 + 25 - 1,25) = (28 * 27 * 26)/6 = 3276,即选A。
cpcs

cpcs 回答了问题 • 2015-08-05 11:34 • 1 个回复 不感兴趣

#每日一面BAT#第14题 机器人指令序列

赞同来自:

答案: 连续模拟那个commend 至多5次,必然有两次朝向一样的,分析这两次,实际上有一个位移,如果这个位移是0,说明他在转圈,否则就相当于它不断沿着这个向量方向再走,直到无穷远……
答案: 连续模拟那个commend 至多5次,必然有两次朝向一样的,分析这两次,实际上有一个位移,如果这个位移是0,说明他在转圈,否则就相当于它不断沿着这个向量方向再走,直到无穷远……
EagleSky

EagleSky 回答了问题 • 2015-08-05 19:48 • 2 个回复 不感兴趣

#每日一面BAT#第15题 a[x] == x

赞同来自:

设整数\\(x_1 > x_2\\),并且有\\(x_1 = x_2 + d\\)。由于数组\\(a\\)是一个严格单调递增的整数数组,所以必然有\\(a[x_1] \geqslant a[x_2] + d\\)。
两边同时减去\\(x_1\\),