最新分治算法与汉诺塔问题的详解,java常用框架面试

最后

看完美团、字节、腾讯这三家的面试问题,是不是感觉问的特别多,可能咱们又得开启面试造火箭、工作拧螺丝的模式去准备下一次的面试了。

开篇有提及我可是足足背下了1000道题目,多少还是有点用的呢,我看了下,上面这些问题大部分都能从我背的题里找到的,所以今天给大家分享一下互联网工程师必备的面试1000题

注意不论是我说的互联网面试1000题,还是后面提及的算法与数据结构、设计模式以及更多的Java学习笔记等,皆可分享给各位朋友

最新“美团+字节+腾讯”一二三面问题,挑战一下你能走到哪一面?

互联网工程师必备的面试1000题

而且从上面三家来看,算法与数据结构是必备不可少的呀,因此我建议大家可以去刷刷这本左程云大佬著作的《程序员代码面试指南 IT名企算法与数据结构题目最优解》,里面近200道真实出现过的经典代码面试题

最新“美团+字节+腾讯”一二三面问题,挑战一下你能走到哪一面?

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  1. 合并:将各个子问题的解合并为原问题的解

二、分治算法处理汉诺塔问题

===========================================================================

汉诺塔问题源于印度一个古老的益智玩具,大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64篇黄金圆盘,大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上,并且规定,再小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘

在这里插入图片描述

在三个盘的情况下,我们会想办法将最上面的两个盘子移动到B塔上,现将最大的盘子移动到C塔,最后将最上面的两个盘子移动到C塔,完成移动

移动64个盘子我们所遵循的移动思想和3个盘子基本一致

1.汉诺塔思路分析


  1. 如果只有一个盘,A->C

  2. 如果我们有n>=2的情况,我们总是可以看做是两个盘1.最下面的盘2.上面的盘

  3. 先把最上面的盘A->B

  4. 把最下面的盘A->C

  5. 把B塔的盘移动从B->C

注意,解此类问题时,我们只需按照分治算法的思路,按照将问题分割到最小来解决,在汉诺塔中,无论盘子再多,在我们眼中,只有两个盘子在移动,那就是上面的盘子和下面的盘子,一旦我们将最简单地问题解决,递归会帮助我们解决一切

package org.wql.Ten.Hannuota;

/**

  • Description

  • User:

  • Date:

  • Time:

*/

public class HannuotaDemo {

public static void main(String[] args) {

System.out.println(“移动三个盘子”);

hanoiTower(3,‘A’,‘B’,‘C’);

}

//汉诺塔的移动的方法

public static void hanoiTower(int num,char a,char b,char c){

if(num==1){

//先把最上面的盘A->B

System.out.println(“第1个盘从”+a+“->”+c);

}else {

//我们总是可以看做只有两个盘,最下面的一个盘和上面的所有盘

//上面的盘子统一移动到B塔上

hanoiTower(num-1,a,c,b);

System.out.println(“第”+num+“个盘从”+a+“->”+c);

面试结束复盘查漏补缺

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

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

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

历经30天,说说我的支付宝4面+美团4面+拼多多四面,侥幸全获Offer

image.png

更多笔记分享

历经30天,说说我的支付宝4面+美团4面+拼多多四面,侥幸全获Offer

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

ms/4f45ff00ff254613a03fab5e56a57acb)收录**

需要这份系统化的资料的朋友,可以点击这里获取

  • 14
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值