【算法】击鼓传花

el/2023/12/3 3:26:53

在这里插入图片描述
解题思路见注释


/*** @author dustdawn* @date 2019/9/2 8:24*/
public class JiGuChuanHua {public static void main(String[] args) {int n = 3; //人数int m = 3; //次数transmit(n, m);}public static void transmit(int n, int m) {int[][] arr = new int[m+1][n+1];/*** 定义 行:次数+1 列:人数+1 的二维数组* 表示有n个人,第m次回到原点左右两人的情况之和* 停留在每个位置有两个方向走下一步* 即1->2 1->n* 则走一步回到一个点有两种情况2->1 n->1* arr[m][n]等于 m-1次走回原点之和* arr[m][n] = arr[m-1][n+1] + arr[m-1][n-1]* arr[0][1] = 1;* arr[1][2] = 1 = arr[0][1] + arr[0][3](0);* arr[2][2] = 1 = arr[1][1] + arr[1][3];* arr[m][2] = 1 = arr[m-1][1] + arr[m-1][3];*///走1次回到原点方式,只能1个人arr[0][1] = 1;//递归回边界arr[0][1]for (int i = 1; i <= m; i++) {for (int j = 1; j <= n; j++) {if(j == 1) {arr[i][1] = arr[i-1][2] + arr[i-1][n];}else if(j == n) {arr[i][j] = arr[i-1][j-1] + arr[i-1][1];}else {arr[i][j] = arr[i-1][j-1] + arr[i-1][j+1];}}}System.out.println(arr[m][1]);}}

http://www.ngui.cc/el/2927066.html

相关文章

单例模式实现的多种方式

文章目录饿汉式构建懒汉式线程安全构建静态内置类实现单例模式线程安全的单例模式: 双重检验锁(DCL)饿汉式构建 饿汉式&#xff0c;线程不安全 是否 Lazy 初始化&#xff1a;是 是否多线程安全&#xff1a;否 实现难度&#xff1a;易 描述&#xff1a;这种方式是最基本的实…

【算法】小米9.11笔试:《2048》

《2048》是一款热门的数字游戏。游戏中&#xff0c;每个方块上的数字都有2的幂&#xff0c;数字方块会根据指令整体进行上下左右移动&#xff0c;如果两个数字相同的方块在移动中碰撞&#xff0c;他们就会合成一个新的方块。例如下图为4*4格子的游戏&#xff0c;0表示格子为空&…

【剑指offer】斐波那契数列递归和非递归

package com.dust.acmcoder;/*** author dustdawn* date 2019/9/3 22:11*//*** 题目描述* 大家都知道斐波那契数列&#xff0c;现在要求输入一个整数n&#xff0c;请你输出斐波那契数列的第n项&#xff08;从0开始&#xff0c;第0项为0&#xff09;。** n<39*/ public class…

synchronized的线程安全实现

目录三个线程打印轮流ABC5次多线程下共享数据并发安全实现三个线程轮流打印A到Z用五个线程&#xff0c;顺序打印数字1~无穷大&#xff0c;其中每5个数字为1组百度百科&#xff1a; synchronized 关键字&#xff0c;代表这个方法加锁,相当于不管哪一个线程&#xff08;例…

try catch finally 的 ruturn 问题

直接上例子吧 public class test {public static String fun() {String result "hello";try {result "1";System.out.println("try");return result;} catch (Exception e) {result "2";System.out.println("catch");re…

Java反射API详解

反射 动态加载对象。在运行状态中&#xff0c;对于任何一个类&#xff0c;能够获取这个类的所有属性和方法&#xff0c;对于一个对象&#xff0c;能够调用它的的任意一个属性和方法&#xff0c;这种动态获取类的内容和动态调用对象的方法称为反射机制。 通过反射机制相关的API就…

Java2019秋招面试整理

文章目录JavaSEJre 和 Jdk 的区别?java 虚拟机 JVMJVM体系结构&#xff1a;GC垃圾回收站机制Java中的队和栈Java 程序运行机制Java 成员变量和局部变量变量的初始化引用数据类型基本数据类型基本数据类型转换之向上转型和向下转换方法的重载&#xff08;Overload&#xff09;操…

JavaEE2019秋招面试知识点整理

文章目录关系型数据库NoSQLRDBMS vs NoSQL分布式系统集群的优点ORMRedisIOC思想DIAOP事务JDBCJDBC连接池增强一个Java类中的某个方法有几种方式装饰设计模式装饰者模式(包装)数据库连接池&#xff1a;DBCP&#xff1a;C3P0&#xff1a;过滤器Filterfilter生命周期及其与生命周期…

Struts2学习笔记复习整理

文章目录概念优势Struts2历史AOP思想Struts2框架的搭建Struts2访问流程&Struts2架构配置详解核心配置struts.xmlstruts2常量配置修改struts2常量配置常用常量配置struts2配置进阶struts2的默认配置Action类详解Action方法结果跳转方式转发重定向转发到Action重定向到Action…

Spring复习整理

文章目录Spring介绍Spring优点Spring概念IOC思想DISpring AOP思想应用Spring底层实现:动态代理基于代理类的AOPAOP名词AspectJ开发Spring的核心容器BeanFactory(过时)ApplicationContextBeanFactory 和 ApplicationContext 的区别:Beanid 属性和 name 属性标签的配置scope 属性…