3.7题


3.21题

1.给定能随机生成整数 1 到 5 的函数,写出能随机生成整数 1 到 7 的函数。

提示:两个random就可以有25种可能,每种可能都是等概率的

2.判断一个自然数是否是某个数的平方,不能使用开方运算。

提示:(1)使用二分查找法,对1到N之间的数字进行判断。复杂度为O(log
n)

(2)由于(n+1)^2 =n^2
+ 2n + 1= ...=
1 + (2*1 + 1) + (2*2 + 1) + ... + (2*n + 1)

注意到这些项构成了等差数列(每项之间相差2)。

所以我们可以比较 N-1, N - 1 - 3, N - 1 - 3 - 5 ... 和0的关系。

如果大于0,则继续减;如果等于0,则成功退出;如果小于 0,则失败退出。

复杂度为O(n^0.5)。

3.如何在半径为1的圆中随机选取一点。

提示:用极坐标来表示

4.皇冠用户仓库开销:有一个淘宝商户,在某城市有n个仓库,每个仓库的储货量不同,现在要通过货物运输,

将每次仓库的储货量变成一致的,n个仓库之间的运输线路围城一个圈,即1->2->3->4->...->n->1->...,

货物只能通过连接的仓库运输,设计最小的运送成本(运货量*路程)达到淘宝商户的要求,并写出代码。

提示:遍历一遍,纪录欠的货量和多的货量,一旦有多的就向顺时针方向移动;复杂度:O(n)

4.5题

个数字:1至50.在接下来的49轮操作中,每次做如下动作:选取两个黑板上的数字a和b,

擦去,在黑板上写|b - a|。请问最后一次动作之后剩下数字可能是什么?为什么?

提示:找规律,要么留下全为奇数,要么为偶数


2.如何判断链表无环?

提示:(1)加一个数据结构,来记录链表的位置或者Key信息,遍历看看是不是会遇到相同的节点

(2)用两个指针一起走,一个步长是1,一个步长是2,然后遍历看看是不是会重合

3.有1000桶酒,其中1桶有毒。而一旦吃了,毒性会在1周后发作。现在我们用小老鼠做实验,

要在1周内找出那桶毒酒,问最少需要多少老鼠。

提示:可以将酒混合后喝

答案:10只。将酒编号为1~1000 将老鼠分别编号为1 2 4 8 16 32 64 128 256 512 喂酒时 让酒的编号等于老鼠编号的加和如:17号酒喂给1号和16号老鼠  76号酒喂给4号、8号和64号老鼠 七天后将死掉的老鼠编号加起来 得到的编号就是有毒的那桶酒 因为2的10次方等于1024 所以10只老鼠最多可以测1024桶酒

证明如下:使用二进制表示:01, 10, 100, 1000, … , 1,000,000,000。对于任何一个小于1024的数,均可以采用前面的唯一一组二进制数来表示。故成立。


4.输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,

每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。 
例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。
提示:遍历一遍,遇到sum<0,就重新从正数开始计数

5.输入n个整数,输出其中最小的k个。

提示:(1)先将所有数字建小堆,然后弹出K个值就可以了;复杂度:n+k*lgn

(2)现将任意k个数字建大堆,然后将剩下的数分别和堆顶数字比较,如果比堆顶数字小,就将堆顶的数字换掉,

比较剩下的n-k个数字后,堆里剩下的数字就是最小的k个;复杂度:k+(n-k)*lgk

6.设计包含min函数的栈

提示:在栈的旁边在加一个数组,记录最小的数的位置

面试题集锦---BY算法导论小组的更多相关文章

  1. C/C++面试题集锦(一)

    C/C++面试题集锦(一) */--> C/C++面试题集锦(一) 在类的头文件中进行声明然后在定义文件中实现有什么意义? 一方面使类的实现只编译一次,提高编译效率:另一方面可以实现类的接口和实 ...

  2. 各大IT公司校园招聘程序猿笔试、面试题集锦

    转自:http://blog.csdn.net/hackbuteer1/article/details/7959921#t4 百度一面 1.给定一个字符串比如“abcdef”,要求写个函数编程“def ...

  3. 【Android面试】Android面试题集锦 (陆续更新)(最新2012-6-18) eoe上看到的

    ===============eoeAndroid社区推荐:======================= 1.Android开发新浪面试题[开发者必看哦]下载地址 http://www.eoeand ...

  4. 2016最新Java笔试题集锦

    更新时间:2015-08-13         来源:网络         投诉删除 [看准网(Kanzhun.com)]笔试题目频道小编搜集的范文“2016最新Java笔试题集锦”,供大家阅读参考, ...

  5. Java笔试题集锦

    Java笔试题集锦 1.MVC的各个部分都有那些技术来实现?怎样实现? 答:MVC是Model-View-Controller的简写."Model" 代表的是应用的业务逻辑(通过J ...

  6. 《算法导论》第二章demo代码实现(Java版)

    <算法导论>第二章demo代码实现(Java版) 前言 表示晚上心里有些不宁静,所以就写一篇博客,来缓缓.囧 拜读<算法导论>这样的神作,当然要做一些练习啦.除了练习题与思考题 ...

  7. Redis面试题集锦(精选)

    1.什么是 Redis?简述它的优缺点? Redis的全称是:Remote Dictionary.Server,本质上是一个Key-Value 类型的内存数据库,很像memcached,整个数据库统统 ...

  8. RabbitMQ面试题集锦(精选)(另附思维导图)

    1.使用RabbitMQ有什么好处? 1.解耦,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦! 2.异步,将消息写入消息队列,非必要的业务逻辑以异步的 ...

  9. B树——算法导论(25)

    B树 1. 简介 在之前我们学习了红黑树,今天再学习一种树--B树.它与红黑树有许多类似的地方,比如都是平衡搜索树,但它们在功能和结构上却有较大的差别. 从功能上看,B树是为磁盘或其他存储设备设计的, ...

随机推荐

  1. [技术翻译]您应该知道的13个有用的JavaScript数组技巧

    本次预计翻译三篇文章如下: 01.[译]9个可以让你在2020年成为前端专家的项目 02.[译]预加载响应式图像,从Chrome 73开始实现 03.[译]您应该知道的13个有用的JavaScript ...

  2. vue-cli 运行打开浏览器

    在配置好项目之后的package.json文件中,找到运行的script,其中“serve”中增加配置“ --open” "scripts": { "serve" ...

  3. Spring Boot 揭秘与实战之RabbitMQ

    Spring Boot 整合 RabbitMQ Spring Boot 整合 RabbitMQ 是非常容易,只需要两个步骤. 首先,在 pom.xml 中增加 RabbitMQ 依赖. <dep ...

  4. SQL SERVER-端口Port

    Quick cheat sheet for port numbers used by SQL Server services or services that SQL Server may depen ...

  5. 五、MySQL系列之高级知识(五)

    本篇 主要介绍MySQL的高级知识---视图.事件.索引等相关知识: 一.视图 在学习视图时我们需要什么是视图,视图有哪些好处以及视图的相关操作: 1.1  什么是视图? 关于视图通俗来讲就是一条se ...

  6. django 配置文件settings.py 设置模板

    INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'dj ...

  7. 【python cookbook】找出序列中出现次数最多的元素

    问题 <Python Cookbook>中有这么一个问题,给定一个序列,找出该序列出现次数最多的元素.例如: words = [ 'look', 'into', 'my', 'eyes', ...

  8. Linux命令——pr

    参考:Linux命令——column 前言 接触这个命令的初衷是我想把一个很长的单列输出设置成多列输出,奈何column的分列输出机制太智障,直到我发现了pr 参数 pr -# 输出指定的列数. -t ...

  9. 13. 请看TED 的演讲, 谈谈你对压力的看法,以及怎么和别人合作, 帮助别人,把压力转化为动力,在互相帮助的环境中成长。------------答题者:徐潇瑞

    看了ted的演讲,我觉得压力就像一根弹簧,有多大的压力,它就有多大的弹力:现实中只要你学会用一种永远不服输的顽强精神,去对待人生和社会中遇到的一切困难与挫折,宠辱不惊的看云卷云舒,悟潮起潮落.可是存在 ...

  10. 个性化召回算法实践(三)——PersonalRank算法

    将用户行为表示为二分图模型.假设给用户\(u\)进行个性化推荐,要计算所有节点相对于用户\(u\)的相关度,则PersonalRank从用户\(u\)对应的节点开始游走,每到一个节点都以\(1-d\) ...