写点什么

Java 开发面试准备,【备战秋招冲击大厂

发布于: 2 小时前
  1. }





### 14\. KMP算法


建立部分匹配表


![](https://static001.geekbang.org/infoq/93/934ac672c07cf0be09ddb2335734bcff.png)


移动位数 = 已匹配的字符数 – 对应的部分匹配值
复制代码


  1. public static int[] KmpMatchTable(String str) {

  2. }





KMP搜索
复制代码


  1. public static int KMPMatch(String str1, String str2) {

  2. }





### 15\. 贪心算法


### 16\. 普利姆算法(prim)


* 求最小生成树
* 普里姆算法介绍
* 普利姆(Prim)算法求最小生成树,也就是在包含n个顶点的连通图中,找出只有(n-1)条边包含所有n个顶点的连通子图,也就是所谓的极小连通子图
* 普利姆的算法如下:
(1) 设G=(V,E)是连通网,T=(U,D)是最小生成树,V,U是顶点集合,E,D是边的集合
(2) 若从顶点u开始构造最小生成树,则从集合V中取出顶点u放入集合U中,标记顶点v的visited\[u\]=1
(3) 若集合U中顶点ui与集合V-U中的顶点vj之间存在边,则寻找这些边中权值最小的边,但不能构成回路,将顶点vj加入集合U中,将边(ui,vj)加入集合D中,标记visited\[vj\]=1
(4) 重复步骤②,直到U与V相等,即所有顶点都被标记为访问过,此时D中有n-1条边
(5) 提示:单独看步骤很难理解,我们通过代码来讲解,比较好理解.

![](https://static001.geekbang.org/infoq/75/7520769e1800f9785465d1ff1392e494.png)


### 17\. 二叉树的中序遍历
复制代码


  1. List<Integer> list = new ArrayList<>();

  2. }





### 18\. 二叉树层序遍历
复制代码


  1. public List<List<Integer>> levelOrder(TreeNode root) {

  2. }





### 19\. 二叉树之字形打印
复制代码


  1. public List<List<Integer>> zigzagLevelOrder(TreeNode root) {





### 20\. 判断A是否是B的子树
复制代码


  1. public class Solution {

  2. }





### 21\. 最小硬币数


* 动态规划算法题:给定不同面额的硬币数组coins和总额amounts,求能够组成总额的最小硬币数。如coins=\[1,2,5\],amounts=11,那么最少硬币数为5+5+1=3.
复制代码


  1. public static int CoinsChange(int[] coins, int amount, int coinSize) {

面试结束复盘查漏补缺

每次面试都是检验自己知识与技术实力的一次机会,面试结束后建议大家及时总结复盘,查漏补缺,然后有针对性地进行学习,既能提高下一场面试的成功概率,还能增加自己的技术知识栈储备,可谓是一举两得。


以下最新总结的阿里 P6 资深 Java 必考题范围和答案,包含最全 MySQL、Redis、Java 并发编程等等面试题和答案,用于参考~


资料免费领取方式:点赞关注后,戳这里免费领取


重要的事说三遍,关注+关注+关注!




更多笔记分享



用户头像

还未添加个人签名 2021.07.29 加入

还未添加个人简介

评论

发布
暂无评论
Java开发面试准备,【备战秋招冲击大厂