算法和数据结构

数据结构

长度为n的数组构建成最小堆的时间复杂度

B、B+树、红黑树

说一下B+树和二叉搜索树的区别?

说一下二叉搜索树和AVL树、红黑树之间的差别

说下红黑树原理,红黑树你看伪代码的时候他有两坨比较一样的有没有注意过

哪些情况下用栈

知道哈希吗?二叉树比哈希牛逼在哪里?各自有什么优缺点,我就从查找和排序上个举了个例子。

哈希解决冲突有哪些机制。

一致性哈希的一致性是什么意思

一致性哈希是如何做哈希的

说一个你印象最深刻的数据结构,用来解决什么典型问题?(堆、TopK问题)

自己最常用的数据结构是什么

 讲讲算法及数据结构在实习项目中的用处

数据结构--设计实现KV结构,查找算法,树

 

 

算法

读过哪些算法方面的书籍

动态规划

讲一下迪杰斯特拉算法的流程

讲一下弗洛伊德算法的流程

说一个典型的算法解决什么问题?

贪心算法有什么优点缺点?贪心算法可能不是最优解那什么算法能解决呢?(动态规划这个词老想不起来..)

 

排序

 

冒泡排序,快速排序,归并排序,堆排序——区别、优缺点、优化(怎样优化快速排序,工程上一般怎么优化?)、时间复杂度(平均、最坏)、实现

 

排序算法中哪些比较稳定的?

 

哪种排序算法适合数据量比较大的排序?

 

讲讲O(nlogn)复杂度的算法在实际工程中的用处

 

基本排序如堆排序的使用场景?

 

选择排序:选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。

 

题目

 

有10个文件,每个文件有1000万行,文件内容的每一行为一个整型数字;需要,写一个程序,将所有数字排序,分为10个文件输出,如0号文件包含前1000万个数字,1号文件文件包含1千万-2千万之间的数字,依次类推。限制:如果使用java,-Xmx需要设置为32MB;其它语言也需限制内存为32MB。要求:正确输出,使用多线程加分。编写时长:24 小时

我主要使用了分而治之,多线程处理的方式。注意下同步即可。

 

一个包含很多字符串的文本文件,计算出每个字符串出现的次数?在网上看很多人都使用了STL的MAP,但我觉得如果只是计算每个字符串出现的次数,那么使用字典树应该更好,无论是在存储空间还是更新和查找上效率都更胜一筹。

 

用什么算法从大量的IP中找出频率最高的IP的?文件非常大,容量不够?HashMap 引导---用分而治之的思想算法复杂度

 

给你50亿行字符串,机器4G内存(只能一台机器),找出重复次数最多的那行字符串?(以行为单位,每行不超过10个字符)

 

top k问题,100亿条数据,找出其中最大的20条,并分析时间复杂度。

 

实现两个10g大文件在10m的内存中将两个大文件中重复的放进第三个文件

 

有两个贴别大的文件里面是字符串,找出他们的交集?(hash分成小文件,在求交集(用前缀树实现求交集比较好

 

一个网络聊天室有思路吗?不要求界面,只说思路

 

设计微信附近的人算法

 

设计一个银行叫号系统

 

一本英文书,找出10个出现频率最高的单词

 

一共16个球队,有自己的分数,实现一个函数,随机返回两个球队,保证分数高的球队尽可能多地返回?

 

你有27个钱币,每个重量10克,除了一个重9克或者11克(重或轻1克)。用天平称量几次才可以辨认出那个不同重量的钱币?答案可以直接百度出来。

 

一批编号为1~100,全部开关朝上(开)的灯进行以下*作:凡是1的倍数反方向拨一次开关;2的倍数反方向又拨一次开关;3的倍数反方向又拨一次开关……问:最后为关熄状态的灯的编号。

 

在线写一个冒泡排序

 

写一个函数,将一个数组中的所有0移动到数组的末尾

 

写一个函数,判断一个字符串中是否有回文子串?

 

输入CCAAADDEE 输出ACDE

 

非递归遍历二叉树

 

非递归且不用额外空间(不用栈),如何遍历二叉树

 

查找数组的中间元素

 

讲下跳表怎么实现的

 

哈夫曼编码是怎么回事

 

反转一串字符串

 

从一串JSON字符串中提取所有的一个属性并输出

 

统计一串字符串中的数字、英文字母、空格、其他字符的个数并打印输出

 

计算N的阶乘

 

数组排序算法随便写

 

创建三个线程ABC,分别打印其线程名十次,并按照ABC的顺序执行;

 

二叉树检索节点有两种搜索:深度搜索/广度搜索,用那种数据结构实现?如果不借助上述数据结构,用什么实现比较好?

 

给你两个文件(字符串形式的)如何找出他们之间的不同地方?你刚刚说的能怎么优化?

 

倒排索引

 

去重策略

 

不需要全表扫描,能够获取时间大于7天的数据

 

现在我的jar包在云上,怎么动态添加进我的项目中?(不知道..后来想了一下自己写ClassLoader应该可以..)

 

定义并实现一个函数。函数功能:删除字符串的子串,输入源字符串和待删除的子串,返回删除后的字符串。

 

 

    • 手撕代码,判断一个字符串表示的ip地址是否合法,ip地址为255.255.255.255之类的,需要考虑各种不合法的条件。
    • 手撕代码,一个4字节的数字代表一个ip地址,将这个数装换为一个string表示的ip地址。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值