那么,如果你要枚举这些填充模式的索引,你会得到

0,0

1,0

0,1

2,0

1,1

0,2

2,1

1,2

2,2

所以,你需要遍历两个指标的总和。也就是说,总添加量。如您所见,0,0总计0,1,0和0,1总计1,依此类推。给我们这样的东西:

0 1 2

1 2 3

2 3 4

要以这种对角线模式进行迭代,我们可以执行以下操作:

// set up your matrix, any size and shape (MxN) is fine, but jagged arrays will break

int[][] matrix = {{0,0,0},{0,0,0},{0,0,0}};

// number is the value we will put in each position of the matrix

int number = 1;

// iterate while number is less than or equal to the total number of positions

// in the matrix. So, for a 3x3 matrix, 9. (this is why the code won't work for

// jagged arrays)

for (int i = 0; number <= matrix.length * matrix[0].length; i++) {

// start each diagonal at the top row and from the right

int row = 0;

int col = i;

do {

// make sure row and length are within the bounds of the matrix

if (row < matrix.length && col < matrix[row].length) {

matrix[row][col] = number;

number++;

}

// we decrement col while incrementing row in order to traverse down and left

row++;

col--;

} while (row >= 0);

}

请注意,虽然此实现将适用于所有矩阵大小(和形状),但它不会尽可能高效。其中n是matrix.length(假设为方形矩阵),该实现是大O符号中的最优O(n ^ 2)类算法;然而,它有效地执行2×n ^ 2次迭代,而最优解只能执行n ^ 2。

java数组对角线的和_java – 2d数组对角线填充相关推荐

  1. java 数组 去掉第一个_java中数组的理解以及如何去掉断点

    数组也是对象 数组是放置相同类型的数据 数组里面放置的每一个变量都是有下标的. 数组的长度是确定的 数组的元素类型必须是相同的 数组类型可以是任何数据类型,包括基本类型和引用类型 数组变量属于引用类型 ...

  2. java数组大小不固定_Java的数组长度为什么不能改变?

    Java中的数组是定长的!你这样int[] a ={}; 定义出来的数组a 长度为0,已经是定长了,之后再给它赋值是不可以的,因为它的长度定义出来之后是不可改变的了.所以在使用数组的时候,一定要注意长 ...

  3. java 两个数组去重复数据_Java实现数组去除重复数据的方法详解

    本文实例讲述了Java实现数组去除重复数据的方法.分享给大家供大家参考,具体如下: 前一段时间被面试问到:如果一个数组中有重复元素,用什么方法可以去重?一时间会想到用一种方法,但是后来查阅资料后发现, ...

  4. java初始化该字符串值_java字符串数组初始化和赋值

    //一维数组 String[] str = new String[5]; //创建一个长度为5的String(字符串)型的一维数组 String[] str = new String[]{" ...

  5. java 数组减除值_java – 删除数组中空值的最有效方法是什么.

    我很好奇删除数组中空值的最有效方法是什么.这是我当前的null(0)删除方法. public static int[] removeNull(int[] array){ int j = 0; for( ...

  6. java数组冒泡排序法编程_java实现数组冒泡排序的方法

    java实现数组冒泡排序的方法 发布时间:2020-06-24 09:21:42 来源:亿速云 阅读:82 作者:Leah 本篇文章展示了java实现数组冒泡排序的具体操作,代码简明扼要容易理解,绝对 ...

  7. java将数组逆序输出_java将一个数组逆序输出-java将一个数组逆序输出的方法-吾爱编程网...

    今天吾爱编程为大家介绍一下java的经典实例将一个数组逆序输出,相信很多学习java的小伙伴都会接触到,有需要的小伙伴可以参考一下: 1.需求分析: 用第一个与最后一个交换, 第二个与倒数第二个交换, ...

  8. java 往数组里添加数据库_Java中将数组各元素作为数据项插入到数据库中

    Java中将数组各元素作为数据项插入到数据库中 private PreparedStatement pstmt; String sql="INSERT INTO TABLE(id,名称,用户 ...

  9. java字符数组转化为字符串_java字符数组转字符串,java数组转字符串

    字符串转数组 使用Java split() 方法 split() 方法根据匹配给定的正则表达式来拆分字符串. 注意: . . | 和 * 等转义字符,必须得加 \\.多个分隔符,可以用 | 作为连字符 ...

最新文章

  1. VISTA IIS Worker Process 已停止工作 解决办法
  2. 【论文解读】目标检测一卷到底之后,终于有人为它挖了个新坑|CVPR2021 Oral
  3. 大剑无锋之Spark中的Driver是什么?【面试推荐】
  4. c语言程序转换成单片机语言,单片机编程常用到的类型转换 C语言程序实现
  5. SaeStorage使用示例
  6. 成人高考 计算机英语作文,2017年成人高考英语作文范文
  7. 从工具到平台|默安科技研发安全一体化管理平台正式发布
  8. 请简述gouraud光照模型_OpenGL ES for Android(冯氏光照)
  9. MongoDB副本集权限重置
  10. Django 强大的ORM之增删改查
  11. 121. VLD 的使用
  12. VMWARE 之 vSphere vCenter 安装基本配置
  13. 计算机科学cs50_世界顶尖CS大学提供500门免费计算机科学课程
  14. 如何在虚拟机里用win95\98上网
  15. 基于stm32的GPS解析数据
  16. 基于PT100铂电阻的高精度测温方法
  17. 漫画:骚操作系列(必须掌握的疯子找座问题)
  18. iOS 13获取keyWindow
  19. 3.8编写程序 ,要求用户从键盘输入一个年份,程序输出改年出生的人的生肖。中国生肖基于12年一个周期,Java
  20. 2020年度英国商业大奖获奖名单公布

热门文章

  1. 没有bug队——加贝——Python 49,50
  2. padans 判断列是否为空_pandas 如何判断指定列是否(全部)为NaN(空值)
  3. php取指定文件夹图片大小,php获取某文件夹的大小
  4. [word技巧]把标题、图表题注编号由“一.1”改为“1.1“
  5. backward理解
  6. Ajax动态拼接li并绑定事件
  7. 构建测试的体系化思维(高级篇)
  8. 利用可视化软件navicat查看表的sql语句
  9. RT-Thread中如何预编译一个.c文件
  10. 【转】python的复制,深拷贝和浅拷贝的区别