- 浏览: 787360 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
萨琳娜啊:
Java读源码之Netty深入剖析网盘地址:https://p ...
Netty源码学习-FileRegion -
飞天奔月:
写得有趣 ^_^
那一年你定义了一个接口 -
GoldRoger:
第二个方法很好
java-判断一个自然数是否是某个数的平方。当然不能使用开方运算 -
bylijinnan:
<script>alert("close ...
自己动手实现Java Validation -
paul920531:
39行有个bug:"int j=new Random ...
java-蓄水池抽样-要求从N个元素中随机的抽取k个元素,其中N无法确定
the idea is from:http://blog.csdn.net/zhanxinhang/article/details/6731134
public class MaxSubMatrix { /**see http://blog.csdn.net/zhanxinhang/article/details/6731134 * Q35 求一个矩阵中最大的二维矩阵 ( 元素和最大 ). 如 : 1 2 0 3 4 2 3 4 5 1 1 1 5 3 0 中最大的是 : 4 5 5 3 three solutions: 1.brutalFind:calculate all the possible sum and find the largest 2.verticalFind:when matrix's rowIndex is larger than columnIndex,like "int[][] b" in the following code 3.herizonalFind:when matrix's rowIndex is smaller than columnIndex,like "int[][] a" in the following code both 2 and 3 avoid duplicate calculation */ public static void main(String[] args) { MaxSubMatrix msm=new MaxSubMatrix(); int[][] a={ {2,3,4}, {1,3,3}, {1,4,6}, {1,4,8}, {2,3,2}, }; int[][] b={ {1, 2, 0, 3, 4}, {2, 3, 4, 5, 1}, {1, 1, 5, 3, 0}, }; int[][] result=msm.findSumMaxSubMatrix(a); msm.printArray(result); System.out.println("----------------"); result=msm.brutalFind(a); msm.printArray(result); System.out.println("----------------"); result=msm.findSumMaxSubMatrix(b); msm.printArray(result); System.out.println("----------------"); result=msm.brutalFind(b); msm.printArray(result); } public int[][] findSumMaxSubMatrix(int[][] a){ int[][] result=null; int row=a.length; int col=a[0].length; if(row>=col){ result=herizonalFind(a,row,col); }else{ result=verticalFind(a,row,col); } return result; } public int[][] brutalFind(int[][] a){ int[][] result=new int[2][2]; int row=a.length; int col=a[0].length; int sum=0; int p=0; int q=0; for(int i=0;i<row-1;i++){ for(int j=0;j<col-1;j++){ int x=a[i][j]; int y=a[i][j+1]; int z=a[i+1][j]; int k=a[i+1][j+1]; int temp=x+y+z+k; if(temp>sum){ sum=temp; p=i; q=j; } } } result[0][0]=a[p][q]; result[0][1]=a[p][q+1]; result[1][0]=a[p+1][q]; result[1][1]=a[p+1][q+1]; return result; } public int[][] herizonalFind(int[][] a,int row,int col){ int[][] result=new int[2][2]; int lastHerizonalSum=a[0][0]+a[0][1]; int sum=0; int p=0; int q=0; for(int i=1;i<row;i++){ for(int j=0;j<col-1;j++){ int temp=lastHerizonalSum+a[i][j]+a[i][j+1]; lastHerizonalSum=a[i][j]+a[i][j+1]; if(temp>sum){ sum=temp; p=i; q=j; } } } result[0][0]=a[p-1][q]; result[0][1]=a[p-1][q+1]; result[1][0]=a[p][q]; result[1][1]=a[p][q+1]; return result; } public int[][] verticalFind(int[][] a,int row,int col){ int[][] result=new int[2][2]; int lastVerticalSum=a[0][0]+a[1][0]; int sum=0; int p=0; int q=0; for(int i=0;i<row-1;i++){ for(int j=1;j<col;j++){ int temp=lastVerticalSum+a[i][j]+a[i+1][j]; lastVerticalSum=a[i][j]+a[i+1][j]; if(temp>sum){ sum=temp; p=i; q=j; } } } result[0][0]=a[p][q-1]; result[0][1]=a[p][q]; result[1][0]=a[p+1][q-1]; result[1][1]=a[p+1][q]; return result; } public void printArray(int[][] a){ int row=a.length; int col=a[0].length; for(int i=0;i<row;i++){ for(int j=0;j<col;j++){ System.out.print(a[i][j]+" "); } System.out.println(); } } }
发表评论
-
百度笔试题:一个已经排序好的很大的数组,现在给它划分成m段,每段长度不定,段长最长为k,然后段内打乱顺序,请设计一个算法对其进行重新排序
2012-12-21 18:17 4102import java.util.Arrays; ... -
java-56-动态规划-最长公共子序列
2012-03-12 00:14 2975http://zhedahht.blog.163.com/bl ... -
java-60-在O(1)时间删除链表结点
2012-03-12 00:12 1987public class DeleteNode_O1_ ... -
java-57-用两个栈实现队列&&用两个队列实现一个栈
2012-03-11 11:25 10803import java.util.ArrayList; ... -
java-26-左旋转字符串
2012-03-11 11:23 3084public class LeftRotateString ... -
java-66-用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。颠倒之后的栈为{5,4,3,2,1},5处在栈顶
2012-03-08 20:41 5002import java.util.Stack; pu ... -
java-54- 调整数组顺序使奇数位于偶数前面
2012-03-06 21:09 3701import java.util.Arrays; imp ... -
java-63-在字符串中删除特定的字符
2012-03-05 16:47 2335public class DeleteSpecific ... -
java-67-扑克牌的顺子.从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的.2-10为数字本身,A为1,J为11,Q为12,K为13,而大
2012-03-05 15:46 6247package com.ljn.base; import ... -
java-68-把数组排成最小的数。一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的。例如输入数组{32, 321},则输出32132
2012-03-05 10:38 6191import java.util.Arrays; imp ... -
java-69-旋转数组的最小元素。把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素
2012-02-29 10:30 3537public class MinOfShiftedAr ... -
java-67- n个骰子的点数。 把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。
2012-02-28 00:00 6452public class ProbabilityOfD ... -
java-71-数值的整数次方.实现函数double Power(double base, int exponent),求base的exponent次方
2012-02-27 21:43 3092public class Power { /* ... -
java-73-输入一个字符串,输出该字符串中对称的子字符串的最大长度
2012-02-27 16:14 5845public class LongestSymmtri ... -
java-75-二叉树两结点的最低共同父结点
2012-02-27 11:27 1553import java.util.LinkedList; ... -
java-74-数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字
2012-02-11 10:56 2507public class OcuppyMoreThan ... -
java-17-在一个字符串中找到第一个只出现一次的字符
2012-02-11 10:04 5887public class FirstShowOnlyO ... -
java-50-输入两棵二叉树A和B,判断树B是不是A的子结构
2012-02-10 23:26 1981思路来自:http://zhedahht.blog.163.c ... -
java-51-输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
2012-02-10 10:55 4275public class PrintMatrixClo ... -
java-61-在数组中,数字减去它右边(注意是右边)的数字得到一个数对之差. 求所有数对之差的最大值。例如在数组{2, 4, 1, 16, 7, 5,
2012-02-09 23:08 2234思路来自:http://zhedahht. ...
相关推荐
总之,ZXing库为Java开发者提供了一个强大且灵活的工具,用于处理二维码和其他条形码。通过`zxing-3.1.0.jar`和`zxing-javase-3.1.0.jar`,可以在各种Java环境中轻松地实现二维码的生成和解析,包括在带有logo的...
- **图像处理**:图像可以表示为二维矩阵,矩阵运算可用于图像增强、旋转等操作。 四、源码分析 除了jama-1.0.3.jar包,压缩包内还包含jama-1.0.3-sources.jar,这是源代码文件,开发者可以直接查看和学习其内部...
总的来说,进制矩阵转换是计算机科学基础中的一个重要概念,理解和掌握这项技能对于学习和应用计算机技术至关重要。这个压缩包提供的资源可能是为了帮助初学者或者开发者更有效地进行这种转换,从而提升他们的编程...
Java 求一个3*3矩阵对角线元素之和,实现的思路主要是利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。也就计算对角线之和。计算对角线之和代码分享: for(int i = 0;i ;i ) { for(int j = 0;j ;j ...
- **BitMatrix**:表示二维条码的二进制矩阵数据结构。 - **BarcodeFormat**:枚举了所有支持的条码格式。 2. **ZXing Java SE库(javase-2.2.jar)**: `javase-2.2.jar`是ZXing针对Java Standard Edition(SE...
在描述中提到的`MatrixToImageWriter.writeToPath()` 方法,是ZXing库中用于将条码数据矩阵(一个二维布尔数组)转换为图像文件的方法。这个方法在ZXing的`core`模块中定义,允许开发者将条码数据写入指定路径的图像...
- 可以使用类来表示稀疏矩阵,包含三个主要成员:非零元素个数、行数、列数,以及一个二维数组或列表存储三元组。 - 初始化:根据输入的矩阵,遍历并收集非零元素的三元组信息。 - 基本操作:包括加法、减法、...
Java矩阵学习包JAMA-1.0.3.jar是一个专门用于矩阵运算的库,它为Java程序员提供了一个方便、高效的方式来处理线性代数问题。这个库被广泛应用于机器学习、数据分析、科学计算以及工程计算等领域,因为它简化了复杂的...
在编程领域,鞍点(Saddle Point)是指在一个矩阵中,某个元素在同一行中最大,同时在同一列中最小。这是一个相对特殊的位置,因为通常我们关注的是最大值或最小值,而鞍点则结合了这两种特性。在Java编程中,解决这...
在本项目中,我们关注的是一个基于Java编程语言实现的象棋游戏。"Java-chess.rar" 是一个压缩包文件,其中包含了实现这个Java象棋程序的相关代码和资源。从描述中我们可以了解到,该程序已经增加了保存当前棋局的...
在图像处理中,我们用高斯核(一个二维的高斯函数矩阵)对图像的每个像素进行加权平均,权重由高斯函数决定。距离中心像素越远的像素,其权重越小,因此,边缘的像素对中心像素的影响较小,从而实现模糊效果。 在...
ZXing是一个多格式的一维/二维条码图像处理库,支持读取、生成、解码和编码各种条码和二维码。 描述中提到的"将支付链接生成二维码所需",指的是ZXing库在支付场景中的应用。在移动支付中,经常需要将一个包含支付...
在Java中,我们可以创建一个二维数组,并初始化对角线以下的元素为0来实现上三角矩阵。 下三角矩阵与上三角矩阵相反,它的主对角线以上所有元素都是0。这种矩阵同样适用于线性代数问题的处理,比如解逆矩阵或计算...
5. 多维数组:Java支持多维数组,如二维数组(矩阵)。 二、Java集合框架 1. 集合接口:集合框架的核心是`Collection`接口,它有两个主要子接口——`List`和`Set`。 2. `List`接口:有序的集合,允许有重复元素,如...
在二维数组中,转置后的数组第i行第j列的元素应该和原数组的第j行第i列的元素相同。下面是一个实现数组转置的示例: ```java int[][] transposedArray = new int[5][5]; for (int i = 0; i ; i++) { for (int j =...
二维码,全称为二维条形码,是一种矩阵式条码,它能够存储比传统一维条形码更多的信息。通过编码算法,二维码将文本、数字、URL等数据转换为黑白相间的图形,以便由扫描设备读取。 在Java中实现二维码生成,我们...
在Java编程语言中,创建和操作二维数组是常见的任务,特别是在构建矩阵时。"daima.rar_JAVA编写5*5矩阵"这个压缩包显然包含了关于如何使用Java编写一个5行5列矩阵的示例代码。这个程序由两个类组成:`matrix`和主类`...
5. **数据结构**:棋盘状态的存储通常会用到二维数组或矩阵,表示棋盘上每格的状态(空、黑棋、白棋)。此外,可能还会使用栈或队列来保存历史步数,便于回溯或撤销操作。 6. **错误处理**:良好的错误处理机制是...
- **实现逻辑**:创建一个新的二维数组作为转置后的矩阵,并通过双重循环遍历原始矩阵的每个元素,将其放置到转置矩阵的相应位置上。 ##### 4. `covertMatrix(int matrix[][])` - **功能描述**:此方法也用于实现...
2048游戏的核心算法是基于二维数组的矩阵操作。游戏开始时,数组的四个随机位置生成两个2,然后每次玩家上、下、左、右滑动,数组中的数字会按照一定的规则进行合并和移动。这个过程涉及到的主要算法有: 1. **合并...