Java三到五年面试题及答案_阿里巴巴(alibaba)算法部分面试JAVA题20180820日期版本汇总及对应答案参考答案整理(三)...

一、三面(算法)

4f59b48959c471ed94adcd3243acc193.png

1. 给你50亿行字符串,机器4G内存(只能一台机器),找出重复次数最多的那行字符串?(以行为单位,每行不超过10个字符)根据50亿和4G的限制,直接想到切割多少份文件后,争取这一份文件大小够加载4G内存进行解析(当然当个文件尽可能接近内存大小,充分利用内存读取速度,提供整体计算时间),@b@大概分为500比较合适(每个文件大概100m左右,加载内存解析够了),让后按照hash(行号)%500进行分配存储,分别对每个文件排序后再存在有序大小字符串文件,通过选择排序逐步递归筛累计结果

2. 一个圆上三个点形成钝角的概率是多少?3/4;@b@1:在圆上任意取第一个点A;@b@2:再任意第二个点B,有AB重合、AB在同一条直径上两个特殊点,@b@但对于圆上的无数个点来说,B取到上面两个特殊点的概率为0; @b@所以可以使AB能够不重合且不在同一直径上的概率为1;以下叙述将不考虑上述两个特殊点;@b@由上所述,A、B两点的取法可以看做是任意取,概率为1;@b@3:再任意取第三点C,C有与A重合、与B重合两个特殊点,同上,可以忽略不计@b@设原点为O,则AO交圆于点D,BO交圆于点E,则C在弧DBAE时(D、B、A、E四点除外),三角形ABC为钝角三角形;@b@由AB的长度从趋近于零,到趋近于直径,弧DBAE的长度由趋近于圆周长1,到趋近于半圆周1/2,@b@所以弧DBAE的平均长度为(1+1/2)/2 = 3/4;@b@所以三角形ABC为钝角三角形的概率为3/4

3. 假如两个点和圆心形成的圆心角已经是直角,那么第三个和这两个点形成钝角的概率是多少?(接上一题)

4. 快速排序的平均复杂多少?最坏情况是什么?(这个题估计就是缓和一下尴尬的气氛)O (nlogn),最坏情况,需要进行n‐1递归调用,其空间复杂度为O(n)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值