1.题目描述

—个公司做团建活动,排成1个M行N列的队形。左上角的同事编号为(0,0),右下角的同事编号为(M-1,N-1)。
为了打散队伍重新分组。
从队列左上角同事开始从1开始报数,最外圈的同事按顺时针报数。
外圈同事全部报完,内圈的同事按同样规则继续报数.
个位数为7且十位数为奇数被挑选出来作为特战队员。
请设计一个计算的方法,入参是两个大于等于10且小于等于1000的整数,M和N。
请按报数顺序输出特战队员的编号列表(N*2的二维数组)
非法输入请返回内容为空的数组

2.输入输出描述

输入描述:
入参是两个整数M和N,值范围为:[10,1000]。单空格分隔,格式如:
10 10
输出描述:
请按报数顺序输出特战队员的编号列表(N * 2的二维数组)
非法输入请返回内容为空的数组。
俞出样例:
[[7, 9], [1, 1], [8, 2], [7, 5], [4, 4]]

代码实现

public class ReverseOnly {public static void main(String[] args){int i = 0;Scanner n = new Scanner(System.in);System.out.println("请输入参数M和N, 空格隔开");int M = n.nextInt();int N = n.nextInt();System.out.println("输出");num(M, N);i++;}public static Map<Integer, int[]> toMap = new HashMap<>();public static int[][] num(int M, int N) {int[][] res = new int[M * N][];int[][] arr =  creat(M, N);int[] ans = spiralOrder(arr);int resi = 0;for (int i = 1; i < M * N; i++){int numA = i % 10, numB = (i % 100) / 10;if ((numA == 7) && (numB % 2 == 1)) {int[] t = toMap.get(i);res[resi++] = t;}}
//        resi;int[][] result = new int[resi][1];for (int j = 0; j < resi; j++) {result[j] = res[j];}System.out.println(Arrays.deepToString(result));return result;}// 正常构造二维数组public static int[][]  creat(int N, int M) {int[][] res = new int[M][N];int index = 1;for (int i = 0; i < M; i++) {for (int j = 0; j < N; j++){res[i][j] = index++;int[] temp = new int[]{i, j};toMap.put(index, temp);}}return res;}// 逆时针输出数组public static int[] spiralOrder(int[][] matrix) {if (matrix == null || matrix.length == 0 || matrix[0].length == 0) {return new int[0];}int rows = matrix.length, columns = matrix[0].length;boolean[][] visited = new boolean[rows][columns];int total = rows * columns;int[] order = new int[total];int row = 0, column = 0;int[][] directions = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};int directionIndex = 0;int index = 1;for (int i = 0; i < total; i++) {order[i] = matrix[row][column];int[] temp = new int[]{row, column};toMap.put(index++, temp);visited[row][column] = true;int nextRow = row + directions[directionIndex][0], nextColumn = column + directions[directionIndex][1];if (nextRow < 0 || nextRow >= rows || nextColumn < 0 || nextColumn >= columns || visited[nextRow][nextColumn]) {directionIndex = (directionIndex + 1) % 4;}row += directions[directionIndex][0];column += directions[directionIndex][1];}return order;}
}

华为笔试题总结———个公司做团建活动,排成1个M行N列的队形...请按报数顺序输出特战队员的编号列表(N*2的二维数组)相关推荐

  1. 华为笔试题———个公司做团建活动,排成1个M行N列的队形...请按报数顺序输出特战队员的编号列表(N*2的二维数组)

    目录 1题目描述 2输入输出描述 3代码实现 4不足之处 1题目描述 -个公司做团建活动,排成1个M行N列的队形.左上角的同事编号为(0,0),右下角的同事编号为(M-1,N-1). 为了打散队伍重新 ...

  2. python中如何将字典直接变成二维数组_python基础知识(列表、字典、二维数组)...

    记得改参数!!! (1)简述列表(list)结构的特点. List(列表) List的元素以线性方式存储,可以存放重复对象,List主要有以下两个实现类: ArrayList : 长度可变的数组,可以 ...

  3. 如何在C/C++中动态分配二维数组

    如何在C/C++中动态分配二维数组 在C/C++中动态分配二维数组可以先申请一维的指针数组,然后该数组中的每个指针再申请数组,这样就相当于二维数组了,但是这种方法会导致每行可能不相邻,从而访问效率比较 ...

  4. 什么是二维数组以及二维数组传参

    什么是二维数组 当刚看见二维数组时肯定会对二维数组有一些疑惑二维数组是什么? int arr[4] = { 1,2,3,4 };//这个便是一维数组 以 int 类型为例子当 int 类型的元素集合在 ...

  5. Json字符串转二维数组

    由于最近做帆软报表需要,自己百度了很久也没有找到合适的,干脆自己写一个吧,程序没有过多测试,有什么问题可以留言我. 注意: 传入的Json需要是由List<Object>转化而来的 例如: ...

  6. C++阶段01笔记05【数组(概述、一维数组、二维数组)】

    C++| 匠心之作 从0到1入门学编程[视频+课件+笔记+源码] 目录 5 数组 5.1 概述 5.2 一维数组 5.2.1 一维数组定义方式 --示例 5.2.2 一维数组数组名 --示例 --练习 ...

  7. python中的二维数组与一维数组,矩阵和一维数组之间的运算

    一.python中的二维数组和一维数组之间的运算 1.当二维数组为p×p维 a=np.array([[1,2],[3,4]]) print(a.shape) a 输出: (2, 2) array([[ ...

  8. 使用函数对4*4的二维数组转置

    <程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p240 习题7 4.编写一函数,实现将给定的一个4*4的二维数组转置,即行列转换 #include&l ...

  9. 1.3 Java二维数组详解

    为了方便组织各种信息,计算机常将信息以表的形式进行组织,然后再以行和列的形式呈现出来.二维数组的结构决定了其能非常方便地表示计算机中的表,以第一个下标表示元素所在的行,第二个下标表示元素所在的列.下面 ...

最新文章

  1. 独家 | 关于Spark NLP学习,你需要掌握的 LightPipeline(附代码链接)
  2. C++提高部分_C++普通函数与函数模板调用规则---C++语言工作笔记085
  3. python约瑟夫环问题_约瑟夫环问题的Python实现
  4. 14.软件架构设计:大型网站技术架构与业务架构融合之道 --- 业务架构思维
  5. win10下cuda、cudnn、c++的cuda环境(build tool of Visual Studio 2019)、anaconda的pytorch-gpu环境、gcc编译环境
  6. 在python中画正态分布/正弦曲线图像/心形线
  7. android 动画卡顿优化,Android属性动画卡顿的优化
  8. 基础线性代数知识点总结与回顾(三):向量空间和二次型
  9. 更改计算机时间格式,修改电脑日期时间显示格式
  10. 【报错记录】解决Shell脚本报ambiguous redirect
  11. 2022 最新微信ipad协议 62 16 扫码登录 wechatapi
  12. 淘宝商品比价定向爬虫实例介绍
  13. 淘宝客微信机器人接口API开发
  14. vue项目引入typescript(vue与ts混用)
  15. 抖音流量密码时间段,一天中这个时候发推荐几率大
  16. 赋能建筑建材企业物流网络内外联通,B2B交易管理系统打造行业智慧供应链
  17. Redhat 7 安装 iftop软件
  18. 使用iso安装linux系统安装教程,史上最详细linux安装教程
  19. 05 pyecharts 基本图表(示例代码+效果图)
  20. Mac上锁屏的快捷键设置

热门文章

  1. 苹果黑解升级后显示无服务器,果粉怒了!升级iOS 12.1.3后,这款iPhone彻底无服务了...
  2. 安装Vue Devtools extension
  3. 阿里钱盾全球首发 打造移动安全生态圈
  4. Cordova实现模仿微信摇一摇(简单版)
  5. 超好用的PDF转换软件
  6. [读书笔记] C++ Primer Plus -6Ed #1 -1.11.2019
  7. 在Linux里陆游功能怎么打开,Linux命令入门篇(三)
  8. 淘宝产品商标有什么作用?
  9. Linux 批量创建用户脚本
  10. 使用jQuery模仿今日团购