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

算法:二维数组打印问题

题目

给出一个二维数组:[[1,2,3],[4],[5,6]]。在每个数组元素中取一个数字,然后打印出来。打印结果是 145,146,245,246,345,346这种。

分析

把给出的元素列一下
1 2 3
4
5 6
在每层取一个元素,我们定义层级变量是row.
在每层取一个元素,我们定义每层的角标是 i。
思路就是使用递归,递归的退出条件就是 层级达到最大,我们在每个层级按照循环取出来元素。

代码

  /*** 打印* @param arr 给出的原始的二维数组* @param row 层数* @param curr 当前要打印的元素拼接* @param result 结果集,这个看需求*/public void print(int[][] arr, int row, String curr, List<String> result){/**判断递归的跳出条件 **/if(row == arr.length) {result.add(curr);System.out.println(curr);return;}/** 在每一层做循环 **/for(int i = 0; i < arr[row].length ; i++ ){/** 在此处递归,当第一个元素打印出来后,比如145已经打印,此处是在[5,6]数组循环。继续循环6就可以了 **/print(arr, row+1, curr + String.valueOf(arr[row][i]), result);}}public static void main(String[] args) {int[] a1 = {1,2,3};int[] a2 = {4};int[] a3 = {5,6};int[][] ints = new int[][]{a1, a2,a3};ErWeiShuZhuDaYin dy = new ErWeiShuZhuDaYin();List<String> objects = new ArrayList<>();dy.print(ints, 0, "", objects);

相关文章:

  • HDU1032——The 3n + 1 problem,HDU1033——Edge,HDU1034——Candy Sharing Game
  • nginx的配置和使用
  • ubuntu20.04使用systemd服务设置python程序开机自启动
  • [笔记]ONVIF服务端实现[进行中...]
  • 1.Spring Boot 简介(Spring MVC+Mybatis-plus)
  • oracle 查询锁表
  • JS 鼠标拖动实现移动滚动条的滚动效果
  • pageoffice常见问题处理
  • 算法 —— 暴力枚举
  • Godot入门 04平台设计
  • UE4-构建光照后导入的静态网格体变黑
  • c++中的scanf
  • Midjourney绘画提示词精选
  • 使用 nmcli 管理网络连接
  • 【Python机器学习】决策树的构造——信息增益
  • ES6指北【2】—— 箭头函数
  • [笔记] php常见简单功能及函数
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • Android组件 - 收藏集 - 掘金
  • Angular 响应式表单之下拉框
  • dva中组件的懒加载
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • JS基础之数据类型、对象、原型、原型链、继承
  • JS学习笔记——闭包
  • JS字符串转数字方法总结
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • 高性能JavaScript阅读简记(三)
  • 警报:线上事故之CountDownLatch的威力
  • 区块链分支循环
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • #if #elif #endif
  • #java学习笔记(面向对象)----(未完结)
  • #数据结构 笔记三
  • #微信小程序:微信小程序常见的配置传旨
  • (1)bark-ml
  • (24)(24.1) FPV和仿真的机载OSD(三)
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (四)opengl函数加载和错误处理
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (一) storm的集群安装与配置
  • (一)基于IDEA的JAVA基础10
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .dwp和.webpart的区别
  • .Net Core 微服务之Consul(三)-KV存储分布式锁
  • .NET MAUI Sqlite程序应用-数据库配置(一)
  • .NET 药厂业务系统 CPU爆高分析
  • /dev/sda2 is mounted; will not make a filesystem here!
  • @Import注解详解
  • @RequestParam @RequestBody @PathVariable 等参数绑定注解详解