Define a method in which, given a two-dimensional array, evaluates if it has at least two identical rows
我试图想出一个算法来做到这一点,但我没有走得太远.这就是我得到的:
public static boolean righeUguali(int[][] a){
boolean rUguali=false;
for(int i=0; i
for(int j=0; i
if(Arrays.equals(a[i],a[j]))
rUguali = true;
return rUguali;
你能帮我解决这个问题吗?
解决方法:
我是这样做的:
int[][] array = { { 1, 2, 3, 4, 5, 6 },
{ 7, 6, 8, 3 },
{ 1, 2, 3, 4 },
{ 1, 2, 3, 9, 5, 6, 32, 3125423 },
{ 8, 3 },
{ 1, 2, 3, 4, 5, 6 } };//same as first row
external: for (int i = 0; i < array.length; i++) {
for (int j = i + 1; j < array.length; j++) {
if (Arrays.equals(array[i], array[j])) {
System.out.println("Row: " + i + " is the same as row: " + j+" (warning! 0 oriented!)" );
break external;
}
}
}
如你所见,array []非常随机,但第一行(第0行)与最后一行(第5行)相同,所以我所做的就是循环遍历数组一次,并在每个循环中循环通过剩余的数组的行.然后我比较数组,如果他们是相同的chech.如您所见,代码打印出一条消息然后终止(停止外部循环)
这是基于一个简单的排序算法.
编辑#1正如@ 4castle在评论中指出的那样,在方法的上下文中,break语句不是必需的,可以用return替换.
标签:java,arrays,algorithm
来源: https://codeday.me/bug/20190722/1502737.html