当前位置: 首页 > news >正文

Java 面试高频手撕题清单

一、基础算法与数据结构

数组与字符串

  1. 两数之和
  2. 三数之和
  3. 最长无重复字符子串
  4. 字符串反转(含单词反转)
  5. 有效的括号
  6. 合并两个有序数组
  7. 移除数组中的重复元素
  8. 最长公共前缀
  9. 字符串的排列
  10. 盛最多水的容器

链表

  1. 反转链表(单链表、双向链表)
  2. 链表的中间节点
  3. 链表中倒数第 k 个节点
  4. 合并两个有序链表
  5. 环形链表(判断是否有环、找环入口)
  6. 链表相交(找第一个公共节点)
  7. 删除链表中的节点(指定节点、重复节点)

栈与队列

  1. 用栈实现队列
  2. 用队列实现栈
  3. 最小栈(O (1) 获取最小值)
  4. 简化路径
  5. 滑动窗口最大值(队列实现)

哈希表

  1. 有效的字母异位词
  2. 哈希表设计(实现 put、get、remove)
  3. 四数相加 II
  4. 赎金信
  5. 字符串中的第一个唯一字符

  1. 二叉树的前序 / 中序 / 后序遍历(递归 + 迭代)
  2. 二叉树的层序遍历(BFS)
  3. 二叉树的深度(最大深度、最小深度)
  4. 对称二叉树
  5. 二叉搜索树的最近公共祖先
  6. 二叉树的最近公共祖先
  7. 验证二叉搜索树
  8. 二叉树的右视图
  9. 路径总和(判断是否存在、统计所有路径)
  10. 从中序与后序遍历序列构造二叉树

二、排序与查找

  1. 快速排序
  2. 归并排序
  3. 冒泡排序(优化版)
  4. 插入排序
  5. 二分查找(基础版、找左边界、找右边界)
  6. 排序数组中的第 K 个最大元素
  7. 数组中的第 K 个最小元素
  8. 合并区间(基于排序)

三、Java 核心特性相关

  1. 实现一个简单的 ArrayList
  2. 实现一个简单的 LinkedList
  3. 手写单例模式(饿汉式、懒汉式、双重校验锁、静态内部类、枚举)
  4. 实现线程安全的单例
  5. 手写线程池(基于 ThreadPoolExecutor 核心参数)
  6. 实现生产者 - 消费者模型(synchronized+wait/notify、Lock+Condition)
  7. 手写 HashMap(数组 + 链表 / 红黑树结构、hash 计算、扩容机制)
  8. 实现一个简单的 FutureTask
  9. 手写 LRU 缓存(链表 + 哈希表)
  10. 实现字符串分割(类似 split 方法,处理空字符串)

四、动态规划与贪心

  1. 爬楼梯(斐波那契变形)
  2. 打家劫舍
  3. 最大子数组和
  4. 零钱兑换(最少硬币数)
  5. 最长递增子序列
  6. 编辑距离
  7. 买卖股票的最佳时机(含多次买卖、冷冻期等变种)
  8. 分发饼干(贪心)
  9. 无重叠区间(贪心)
  10. 最长公共子序列

五、其他高频场景题

  1. 手写单链表的快速排序
  2. 大数相加(处理超出 int/long 范围的数字)
  3. 判定是否为回文数(整数、字符串)
  4. 岛屿数量(DFS/BFS)
  5. 旋转图像(二维数组旋转 90 度)
  6. 螺旋矩阵(顺时针 / 逆时针打印)
  7. 除自身以外数组的乘积
  8. 寻找重复数
  9. 验证 IP 地址
  10. 最长回文子串
http://www.dtcms.com/a/395648.html

相关文章:

  • 【论文阅读】Long-VLA:释放视觉语言动作模型在机器人操作中的长时程能力
  • Python poplib 库全解析:POP3 邮件收取的完整指南
  • DanceTrack数据集介绍
  • 【无标题】话题学习笔记1,话题基本了解
  • 【论文阅读】OpenVLA:一个开源的视觉-语言-动作模型
  • 科技信息差(9.22)
  • Zotero中进行文献翻译【Windows11】【新版,目前没发现bug】
  • 单细胞数据分析:单细胞计数矩阵(Seurat)
  • Hyperf使用视图
  • React何时用函数组件(Hooks),何时用类组件?(错误边界用类组件Error Boundary)
  • VMware虚拟机ubuntu20.04共享文件夹突然无法使用
  • 流行AI工具的分类与比较
  • 哪些行业需要使用时序数据库?
  • PyTorch 神经网络工具箱简明笔记
  • Pytorch目录细查
  • VMware的Ubuntu与windows共享文件夹
  • RK3588-ubuntu server
  • EPLAN绘制安全回路核心步骤
  • 仁合医疗靠谱吗?——社会责任担当,科技赋能医疗
  • R语言 生物信息 GEO 数据集 GPL5175 平台中一个探针的 gene_assignment 字段内容解读
  • ReactPress 2.0 — 基于 React、Next.js 和 NestJS 构建的现代化全栈发布平台
  • 52Hz——FreeRTOS学习笔记
  • 回归分析:数据驱动时代的 “因果纽带” 与 “预测锚点”—— 技术深潜与方法论破局
  • 宇树go2 gazebo仿真
  • Golang 赋值运算符与短声明 (= 与 :=)使用场景
  • 数据库造神计划第二十天---视图
  • Java 异步支付的 “不安全” 风险点控制
  • 百饮X 北森 | 康师傅百饮事业AI领导力教练Mr. Sen落地实践分享
  • 第十四章:数据分析基础库NumPy(二)
  • AI 算力加速指南:让短视频去水印更加方便