gpt4 book ai didi

java - 确定二维整数数组中的连续数字

转载 作者:行者123 更新时间:2023-11-30 08:46:17 25 4
gpt4 key购买 nike

我有一个不同大小的二维数组,其中高度可以取任何值。

int array[][] = new int[height][height]

假设我有一个 3 x 3 数组,其值为:

7 8 9

6 5 4

1 2 3

是否可以检查 1 是否与 2 相邻、2 是否与 3 相邻、3 是否与 4 相邻、4 是否与 5 相邻等等?此处相邻是指它们在垂直、水平和对角线上相邻。

基本上,有一个从数字 1 到 9 的链接(或最大数字 - 例如,如果棋盘是 4x4,则从 1 到 16)。

最佳答案

这就是我能够做到的。这是一个很好的解决方案,尽管需要更多的空间。绝对不是最好的解决方案。可能需要使用数学来获得更优化的解决方案。我不太擅长数学。

//assuming the height as variable - 'r'
//take an input of some element, let's assume a[0][0], taken inside a[e][e]

int f, f1, f2, arflg=0;
int arr = new int[r*r];
for(int i=0;i<r;i++){
for(int j=0;j<r;j++){
arr[arflg]=a[i][j];
arflg++;
if(a[i][j]==a[e][e]) f1 = arflg; //location of element entered on the array
if(a[i][j]==a[e][e]-1) f2 = arflg; //location of element's predecessor on the array
}
}
f = f2 - f1;
if(f==1){
//forward hortizontal
}elseif(f==-1){
//backward horizontal
}elseif(f==r){
//below
}elseif(f==r-1){
//below left
}elseif(f==r+1){
//below right
}elseif(f==-r){
//above
}elseif(f==(-r-1)){
//above left
}elseif(f==(-r+1){
//above right
}

关于java - 确定二维整数数组中的连续数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32924085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com