分配土地【华为OD机试JAVA题解】

54 篇文章 39 订阅 ¥9.90 ¥99.00
这篇博客主要解析华为OD机试中的一道题目——分配土地。问题旨在找到覆盖相同数字旗子的最小矩阵形土地的最大面积。博客内容包括问题描述、解题思路、多种语言的代码实现及详细讲解,帮助读者理解和解决此类问题。
摘要由CSDN通过智能技术生成

一. 题目-分配土地

从前有个村庄,村民们喜欢在各种田地上插上小旗子,旗子上标识了各种不同的数字。某天集体村民决定将覆盖相同数字的最小矩阵形的土地的分配给为村里做出巨大贡献的村民,请问,此次分配土地,做出贡献的村民中最大会分配多大面积?

输入描述:

第一行输入m和n,m代表村子的土地的长,n代表土地的宽

第二行开始输入地图上的具体标识

输出描述:

输出需要分配的土地面积,即包含相同数字旗子的最小矩阵中的最大面积。

补充说明:

旗子上的数字为1-500,土地边长不超过500

未插旗子的土地用0标识

示例1

输入:

3 3
1 0 1
0 0 0
0 1 0
输出:

9
说明:

土地上的旗子为1,其坐标分别为(0,0),(2,1)以及(0,2),为了覆盖所有旗子,矩阵需要覆盖的横坐标为0和2,纵坐标为0和2,所以面积为9,即(2-0+1)*(2-0+1)=9。

示例2

输入:

3 3
1 0 2
0 0 0
0 3 4
输出:

1
说明:

由于不存在成对的小旗子,故而返回1,即一块土地的面积。

二.解题思路

这个问题可以通过遍历每个非零元素,找出包含该元素的最小矩形,然后计算其面积,并更新最大面积

  • 14
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值