`
1140566087
  • 浏览: 558383 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
博客专栏
2c4ae07c-10c2-3bb0-a106-d91fe0a10f37
c/c++ 入门笔记
浏览量:18509
3161ba8d-c410-3ef9-871c-3e48524c5263
Android 学习笔记
浏览量:313801
Group-logo
J2ME 基础学习课程集
浏览量:18682
A98a97d4-eb03-3faf-af96-c7c28f709feb
Spring 学习过程记录...
浏览量:17549
社区版块
存档分类
最新评论

二维数组 元素的连续求解

阅读更多
import java.util.HashMap;




public class Title {
	public static void main(String[] args){
		f();
	}

	// 二位数组的应用
	//12、二维数组中,哪一行或哪一列的连续存放的0的个数最多,是几个0。注意,是“连续”。
	public static void f(){
		int[][] a = {{0,1,2,4,0,0,3,0,1,0},{0,0,2,4,5,0,3,0,1,1},{0,1,0,0,0,0,3,0,1,0}};
		int[][] count = new int[a.length][1];

		// 行
		int maxCountH = 0;
		for(int i=0;i<a.length;i++){
			int temp = 1; //默认有一个 0 
			int j=1;
			for(;j<a[i].length;j++){
				if(a[i][j]==a[i][j-1] && a[i][j-1]==0){
					temp++;
				}
			}
			if(temp>maxCountH){
				maxCountH = temp;
			}
			count[i][0] = temp;
		}
		//列
		int maxCountL = 0;
		int[][] liecount = new int[a[0].length][1]; //保存列中所有的最大值
		for(int i=0;i<a[0].length;i++){
			int temp = 1; //默认有一个 0 
			for(int j=1;j<a.length;j++){
				if(a[j][i]==a[j-1][i] && a[j][i]==0){
					temp++;
				}
			}
			if(temp>maxCountL){
				maxCountL=temp; //保存最大
			}
			liecount[i][0] = temp;
			//			System.out.println("在列的方向0的个数:"+temp);
		}
		System.out.println("行的最大为:"+maxCountH);
		System.out.println("列的最大为:"+maxCountL);
		if(maxCountH>maxCountL){
			//连续最大的在行中  为:maxCountH
			for(int i=0;i<count.length;i++){
				for(int j=0;j<count[i].length;j++){
					if(count[i][j]==maxCountH){
						System.out.println("最大的连续数在"+(i+1)+"行");
					}
				}
			}
		}else{
			for(int i=0;i<liecount.length;i++){
				for(int j=0;j<liecount[i].length;j++){
					if(liecount[i][j]==maxCountL){
						System.out.println("最大的连续数在"+(i+1)+"列");
					}
				}
			}
		}



	}














}
分享到:
评论

相关推荐

    二维数组前缀和 前缀和 课程zb

    总之,二维数组前缀和是解决矩阵子区域和问题的一种高效方法,通过预先计算矩阵的前缀和,可以实现O(1)时间复杂度内求解任意子矩阵的和,对于大规模数据尤其适用。在实际编程中,需要注意数据类型的选择和边界条件的...

    数组维数组PPT学习教案.pptx

    二维数组在内存中也是连续存放的,但排列方式因编译器而异,可能是行优先或列优先。 数组的应用非常广泛,例如在求解问题中找到最大值、最小值,计算序列(如斐波那契数列),或是处理矩阵等。下面是一个用一维数组...

    C语言第六章数组PPT课件.pptx

    - 下标是两个数字时,表示**二维数组**。 - 类似地,还可以有三维数组、四维数组等。 #### 三、一维数组 一维数组是指数组的下标只有一个维度的数组。例如,可以使用一维数组来存储一组连续的数据,如学生的学号...

    Java学习目录.pdf

    - 对于二维数组,`arr.length`返回外层数组的长度,`arr[i].length`返回第i个内层数组的长度。 遍历多维数组: 通常使用嵌套的for循环来遍历二维数组,如: ```java for (int i = 0; i ; i++) { for (int j = 0; j...

    Java函数与数组实验源代码

    另外,`ArrayOfArrays2`类展示了动态初始化二维数组的方法,其中数组的每一行可以有不同的长度。 总的来说,这个实验涵盖了Java编程中的核心概念,包括数组的使用、函数的定义与调用、递归的理解,以及多维数组的...

    最大长方体问题

    - 使用三重循环遍历三维数组`m1[][][]`,每次固定一定厚度,将当前厚度内的每个元素累加到一个二维数组`tmp[][]`中。 - 调用`Maxsum2()`函数计算当前厚度的最大子矩阵和,并更新最大值。 #### 总结 本问题通过分...

    MATLAB编程求解二维泊松方程.doc

    然后,将得到的一维向量 `u1` 转换回二维数组 `u`,以便于后续的可视化。 为了评估解的精度,文档中计算了最大误差 `err` 和 L2 范数误差 `l2_err`。最大误差是解 `u` 和精确解 `u_exact` 在整个网格上的最大绝对...

    数组与特殊矩阵基本操作及练习

    1. 图像处理:像素可以看作二维数组,图像处理算法常涉及到数组操作。 2. 线性代数:特殊矩阵在求解线性方程组、特征值问题等中有重要作用。 3. 数据压缩:稀疏矩阵用于表示大量缺失数据的情况,如稀疏图。 4. 并行...

    深入浅出说矩阵(讲得比较透彻)

    矩阵,简单来说,是由若干行和列构成的矩形数组,其中的每个元素都是一个数。它就像一个多维表格,用于组织和操作数据。矩阵可以被视为一组列向量或者一组行向量的集合,这种表示方式强调了矩阵在空间中的几何意义。...

    西南交通大学-算法分析与设计-实验5.4实验报告包含预习部分-求最大子序列-求最大子矩阵

    然而,这个代码没有展示如何解决最大子矩阵和问题,这需要扩展到二维数组并使用类似的方法来处理每一对行。 总之,这个实验报告关注的是动态规划在解决两个经典问题中的应用:最大子序列和以及最大子矩阵和。动态...

    最大和连续子数组1

    问题定义:给定一个整数数组 A[1...n],找到一个连续子数组 A[i...j],使得它的和最大,即求解 max(A[i] + A[i+1] + ... + A[j]),其中 1 ≤ i ≤ j ≤ n。 这个问题有多种解决方法,其中最著名的是 Kadane's ...

    C 代码 求解矩形上的二维泊松方程, 使用有限元法, 和分段二次三角形单元.rar

    在本压缩包中,我们关注的是使用C语言解决二维...总之,这个C代码实现了有限元方法求解二维矩形上的泊松方程,通过分段二次三角形单元提高了精度。理解这种算法和代码的细节对于学习数值方法和C编程都具有很高的价值。

    其它课程程序设计与问题求解PPT教案学习.pptx

    数组元素在内存中是连续存储的,因此可以通过数组名和下标访问单个元素,下标从0开始,到数组长度减1为止。 【数组元素的引用】引用数组元素使用数组名加上元素的下标,例如`scores[0]`表示访问数组的第一个元素。...

    数组类型.rar

    8. **矩阵操作**:二维数组的处理,如矩阵转置、矩阵乘法、最短路径问题等。 9. **前缀和**:用于求解区间和问题,常用于解决和、差、积等问题,简化算法逻辑。 10. **堆数据结构**:大顶堆或小顶堆在数组中的实现...

    数组.zip

    矩阵是二维数组,通常用于表示数学中的线性方程组或图像处理。在“矩阵.cpp”中,可能包含实现矩阵加法、减法、乘法(矩阵乘法遵循特定规则,非一般乘法)以及转置矩阵等操作的代码。矩阵运算在图形学、物理模拟和...

    Heat(matlab) 二维 有限元程序

    总之,"Heat_2D"是一个很好的学习资源,它让初学者能够亲手实践有限元方法,并在MATLAB环境中实现二维热传导问题的求解。通过研究这个程序,不仅可以提升编程技能,还能深入理解数值方法在工程问题中的应用。

    三次样条插值C#实现及函数绘图

    在C#中,可以使用如.NET框架自带的`System.Drawing`库或者第三方库如`OxyPlot`来绘制二维图形。你需要创建一个图形窗口,设置坐标轴,然后根据样条函数的解析表达式在指定区间上计算一系列点,将这些点连接起来形成...

    数据结构演示文稿5[1].ppt

    二维数组可视为由多个行向量或列向量组成,其元素可以通过行索引和列索引进行访问。在C语言中,数组的定义具有静态特性,一旦定义,其维数和边界不可变。数组的操作主要包括元素的存取和修改。 数组的顺序表示是指...

    C 代码 应用有限元法(FEM),与偶然性元素, 矩形中的二维边界值问题 (BVP).rar

    综上所述,这个压缩包提供的资源可以帮助学习者深入理解如何使用C语言实现有限元法来解决实际的二维边界值问题,同时提供了处理不确定性的元素,这对于理解和应用有限元法解决实际工程问题是非常有价值的。...

    分治法求最大字段和问题——C语言代码

    标题中的“最大字段和问题”通常指的是在一个二维数组或矩阵中寻找连续的矩形区域,使得该区域内的元素和最大。这是一个经典的二维数组处理问题,可以应用于图像处理、数据挖掘等领域。而“分治法”则是解决这个问题...

Global site tag (gtag.js) - Google Analytics