希望大神给个题解(Java)
给定一个边长为len的表格,把它按边长gridLen来划分为若干等分的格栅。(len为gridLen的整数倍长)。
* 请计算进行格栅化之后,给定的坐标(x,y)出于第几个格栅。格栅编号从1开始
* 如:以下为边长6的表格,格栅边长为3.其中(1,5)出于第二个格栅。输出2
* 请计算进行格栅化之后,给定的坐标(x,y)出于第几个格栅。格栅编号从1开始
* 如:以下为边长6的表格,格栅边长为3.其中(1,5)出于第二个格栅。输出2
全部评论
public static int solution(int len, int gridLen, int x, int y) {
//每一行或者每一列有多少个格栅
int per = len / gridLen;
//这个行列是格栅的行列 都是从一开始算起
int row = x / gridLen + 1;
int col = y / gridLen + 1;
int res;
if (row == 1) {
res = col;
} else {
res = per * (row - 1) + col;
}
return res;
}
除一下不就是答案吗。。
int n = len / gridLen,边长为len的表格可以看做二维数组,x / gridLen * n + y / gridLen + 1 算出来就是第几个格栅。
大概花十分钟,想想,直接看坐标到编号区块的关系看不出来。就引入两个中间量m,n代表行列所划分的区块数。然后设点为x,y,然后就有区块位置为(x/m,y/n)向下取整。得到区块坐标。区块坐标再转换为编号。想一想。坐标转编号公式应该是x*m+y+1,从一开始。
相关推荐
_hengheng:我也本,也算是做ai相关,我最开始感觉做ai工程师有多么多么困难,后来发现懂了原理后整体训练完全可以看成一个流程化的内容,开源方案太多了,大多基本都是按着模子在自家业务上做各种操作,就算是大厂的小部门也没那么多资源去训基模,反而更多的是像怎么把技术往业务方向靠近了,不过当前时代如果本科学历没那么好加上自己执行力不是特别强还真不建议走ai工程师这条路,可以试试其他ai的偏业务方向,不然校招不太好杀出来 点赞 评论 收藏
分享
03-24 14:04
门头沟学院 Web前端 点赞 评论 收藏
分享
04-02 19:24
武汉城市学院 测试工程师 点赞 评论 收藏
分享
查看13道真题和解析
