当前位置: 首页> 财经> 金融 > 建网站资料_定制衣服的app叫什么_域名查询 ip_西安seo霸屏

建网站资料_定制衣服的app叫什么_域名查询 ip_西安seo霸屏

时间:2025/7/13 19:36:08来源:https://blog.csdn.net/ChengZUOZZZ/article/details/147288789 浏览次数:1次
建网站资料_定制衣服的app叫什么_域名查询 ip_西安seo霸屏

本题大意要我们在一个给定的nxm的矩形数组中找出符合条件的格子

条件如下:

               1.数值相同

               2.两个横坐标和纵坐标的差值相等(由此可得是一个对角线上的格子)

那么根据以上条件我们可以用HashMap来解决这个问题,统计对角线上数值相同的格子有几个。

以下是代码的实现:(getOrDefault解决数组中没有这个key的情况。)记得输出的时候乘2因为双向统计

package 连连看;import java.util.HashMap;
import java.util.Scanner;public class Main {static int[][] a=new int[1001] [1001];static long result=0;static int n,m ;public static void main(String[] args) {Scanner scanner=new Scanner(System.in);n =scanner.nextInt();m =scanner.nextInt();for (int i = 1; i <= n; i++) {for (int j = 1; j <=m ; j++) {a[i][j]=scanner.nextInt();}}for (int i = 1; i <=n ; ++i) {//先处理从左上到右下角的对角线g_l(i,1);g_r(i,1);}for (int i = 2; i <=m ; ++i) {//先处理从左上到右下角的对角线g_l(1,i);g_r(n,i);}System.out.println(result*2);}static void g_l(int x, int y) {HashMap<Integer,Integer> hm=new HashMap<>();while (x<=n&&y<=m){result+=hm.getOrDefault(a[x][y],0);hm.put(a[x][y],hm.getOrDefault(a[x][y],0)+1);x++;y++;}}//从左下角到右上角的对角线static void g_r(int x, int y) {HashMap<Integer,Integer> hm=new HashMap<>();while (x>0&&y<=m){result+=hm.getOrDefault(a[x][y],0);hm.put(a[x][y],hm.getOrDefault(a[x][y],0)+1);x--;y++;}}
}

关键字:建网站资料_定制衣服的app叫什么_域名查询 ip_西安seo霸屏

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: