放肆青春的博客
首页
前端
算法
网络
面试
技术
后端
运维
杂项
数据库
工具
网址
电脑
个人
文章
  • 分类
  • 标签
  • 归档
github (opens new window)
gitee (opens new window)

放肆青春

一个前端菜鸟的技术成长之路
首页
前端
算法
网络
面试
技术
后端
运维
杂项
数据库
工具
网址
电脑
个人
文章
  • 分类
  • 标签
  • 归档
github (opens new window)
gitee (opens new window)
  • 面试网址

    • 面试题前端网址博客
    • 面试题后端网址博客
  • 面试

    • 面试准备及技巧
    • 面试问题集锦
    • 简历

      • 简历技巧
      • 别人简历
  • 面试杂章

    • git 面试题
    • 智力题
  • 前端

    • front

      • front面试题汇总
      • 前端场景题/解决方案
      • 前端高级面试题
      • front面试题及答案
      • 前端开放性面试题
      • 前端笔试题
      • 小程序面试题
      • webpack面试题
      • webpack面试题及答案
      • gulp面试题
    • vue

      • vue面试题汇总
      • vue面试题及答案
      • vue-router面试题
      • vuex面试题
      • vue3面试题
    • js

      • js面试题汇总
      • js面试题及答案
      • js手写面试题
      • typescript
      • jquery
    • css

      • css面试题汇总
      • css面试题及答案
      • less_sass
    • html

      • html面试题汇总
      • html面试题及答案
    • node

      • node面试题汇总
      • node面试题及答案
      • express
      • egg
      • koa
    • react

      • react
      • react 面试题及答案
    • angular

      • angular
      • angular面试题及答案
  • 网络

    • http

      • 网络面试题
      • 网络面试及答案
  • 算法

    • 算法

      • 算法面试题
        • 数据结构和算法
        • 算法题
        • 排序算法题
        • 数据结构算法题
          • 数组
          • 链表
          • hash 哈希表
          • 树算法题
          • 图算法题
  • 数据库

    • 数据库面试题
  • 后端

    • zookeeper
    • nginx
  • 测试

  • interview
放肆青春
2020-07-09

算法面试题

# 数据结构和算法

  • 数组和链表随机访问的时间复杂度,数组和链表的区别,数组和链表优点缺点,应用场景【描述】

  • 数组有 10 万个数据,取第一个和取第 10 万个的耗时多久?

  • 你觉得递归有什么缺点?怎么改进代码(爆栈和内存溢出)

爆栈属于什么类型的错误?系统错误还是什么?(没答上来...)

说说对堆栈溢出的理解

  • 简单说下栈和队列?如何用栈实现队列?

  • 栈和队列特点?相互实现?

尾递归、尾调用

最小生成树的定义和构建过程,知道的算法实现思路都说一下

B 树、B+树的区别

栈、队列、堆的分别使用场景,链表平时有用到吗

KMP 算法和 KMP 改进算法的具体思路和实现方法

哈希存储结构的构成方式 (哈希值,哈希表,哈希冲突)

一个很大的树结构,不去递归,怎么快速定位到某一结点

从底层谈谈 map 数据结构的设计。如果容量不够了怎么办,扩容过程中可能会耗费比较多的时间,如果在扩容时要访问怎么办;

# 算法题

  • 实现 36 进制转换

  • 合并乱序区间

  • LRU 算法

这个题我最开始用 Map 做的,面试官跟我说如果不用 Map,如何实现每次查询和删除都能做到 O(1),我没思路,面试官问我查询 O(1)用什么,我说用哈希,问我插入删除 O(1)用什么,我说用链表,可我不知道怎么结合到一起,面试官提示我可以用双向链表,然后我才做出来的

算法: 股票买卖

# 排序算法题

常用的排序算法,时间复杂度和空间复杂度分别是多少

  • 二分查找的时间复杂度是多少,简要描述一下过程,O(logN)是怎么算出来的,TopK 的时间复杂度是多少,快排的时间复杂度是多少

  • 归并排序的思路是什么,一个数组做归并排序的话,一共经历了多少次合并

  • 希尔排序的时间复杂度和空间复杂度多少?

统计大文件 tok k 词频 用桶排序,优化成堆排序,又用 hash 优化,好像都不满意

插入排序

讲一讲插排和快排的实现过程,插排与快排的时间复杂度分析

快速排序

说说快排的优化

快速排序第一轮过程,怎么优化快速排序(中轴选中位数,随机打乱)

快排思路及时间复杂度,如果头尾指针每次相遇都在 1/3 处,其时间复杂度是多少(orz)

快排是不是稳定的

为什么快排是 nlogn

归并排序

归并排序是怎么实现的

外排序

有 1TB 的数据,32GB 内存,怎么排序(外排序)

# 数据结构算法题

# 数组

概念

数组存储怎么压缩(稀疏矩阵,三元组有关知识)

算法题

  • 给你一个已经升序排列的数组,给一个数字,找一下这个数字在这个数组里出现了几次

  • 合并两个有序数组

  • 合并多个有序数组

这题里我解答完之后自认为时间复杂度是 O(n2),循环中用到了 shift 这个方法,面试官问我这个的时间复杂度是多少,我说是 O(n),面试官说有什么办法可以解决这个么,我说可以基于原有的方式倒着循环,这样就可以用 pop 代替 shift 了,面试官问我为什么 pop 时间复杂度是 O(1),我说不知道,面试官让我有时间可以去了解一下均摊算法

  • 输出数组中频率第二高的元素的下标

在一个无序数组中找到第二大的数

  • 对去重算法进行 O(n)的时间复杂度的优化 并且不能使用 Set,

  • 去重算法再度升级 只能去重引用类型

算法: 最长连续数组和

数组去重,数组内包含 number、string、object 等

# 链表

单向链表反转

  • 如何判断链表是否有环?不用快慢指针的话有什么方法?

  • 链表有环怎么判断?环的长度怎么计算?

# hash 哈希表

hash 冲突怎么解决(拉链法,探针法)

# 树算法题

  • 算法:树的遍历有几种方式,实现下层次遍历

  • 算法:判断对称二叉树

# 图算法题

  • 有向图判断是否有环。
更新时间: 2/19/2022, 4:10:36 PM
网络面试及答案
数据库面试题

← 网络面试及答案 数据库面试题→

最近更新
01
前端权限管理
02-24
02
vue2指令
02-24
03
vue2 hook
02-24
更多文章>
Theme by Vdoing | Copyright © 2019-2022 放肆青春
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式