获赞
284
粉丝
160
关注
9
看过 TA
1339
北京理工大学
2023
Java
IP属地:广东
暂未填写个人简介
私信
关注
2022-04-29 21:37
字节跳动_后端开发
两个题 都AC了  尝试发一下题解 1、就是一个尝试的模型。我这里让n 表示较大的,k表示较小的。 考虑1-n 每一个位置 边界:n-k+1 此时可以竖着放,可以横着放,放完之后没有别的选择,返回2 大于边界位置  只能竖着  所以1 其他  就是尝试每一个位置  如果竖着放  那可以去 下一个位置 横着放  长度是k  意味着下面的全是横着  所以去i+k 这样写只能82%  超时   于是 dp优化一下 package jd.c01; import java.util.HashMap; import java.util.Scanner...
turbozhao:刚才在打游戏,重新写一下思路。 1、来到i位置,那你的选择要么竖着放,要么横着放。 竖着放的话,那就去 i+1 位置做选择 process(i+1) 横着放的话,因为1*k n个 你水平放了 意味着下面必须全是横着,所以相当于占了k个位置,那就应该去 i+k位置做选择。 剩下的就是边界,如果水平放不了了,只能全竖着放,对应1中。如果恰好k*k,只能全水平 或者全垂直。 2、给了图的一些点的坐标,即i号店 他的x为x[i] y为y[i],那么我把这个想象成一张图,用long[][] graph表示,两个点的距离也就有了(曼哈顿距离),到达不了的认为是最大值。 剩下的就是用PRIM 最小生成树算法,因为要保证能连着,所以最小生成树是保证联通的 需要最少的边了。因此prim里面统计 每一次加边的max值。最后返回的 就是最小生成树的边的最大值,也就是要的答案了。
投递京东等公司10个岗位 >
0 点赞 评论 收藏
分享
关注他的用户也关注了:
牛客网
牛客企业服务