记录一下第一次笔试AK
给了2023.9.2的京东后端笔试(等下午发题)(C++选手)
第一题:求两区间交集的最大值…就判断一下是不是相交,三个区间两两判断也能过
第二题:求每一个ai大于等于bi[0]的时候bi[1]的最大值,就排序+记录就行,这题会卡long long
第三题:矩阵中的子正方形矩阵的和s1,剩余其他元素的和s2,|s1-s2|最小,实际就是2s1最接近于总矩阵元素和,开一个vector用前缀和的方式,s[i][j]代表0,0到i,j的子矩阵元素和,s[i][j] = s[i][j - 1] + s[i - 1][j] - s[i - 1][j - 1] + a[i][j]; 然后遍历正方形,这其中直接一个一个遍历会超时,记录一下正方形的边长k,下一轮从k-1开始遍历,(我就加了这一句话,就AC了,真的很神奇),子矩阵和:s1 = s[x2][y2] - s[x1-1][y2] - s[x2][y1-1] + s[x1- 1][y1 - 1];
第一题:求两区间交集的最大值…就判断一下是不是相交,三个区间两两判断也能过
第二题:求每一个ai大于等于bi[0]的时候bi[1]的最大值,就排序+记录就行,这题会卡long long
第三题:矩阵中的子正方形矩阵的和s1,剩余其他元素的和s2,|s1-s2|最小,实际就是2s1最接近于总矩阵元素和,开一个vector用前缀和的方式,s[i][j]代表0,0到i,j的子矩阵元素和,s[i][j] = s[i][j - 1] + s[i - 1][j] - s[i - 1][j - 1] + a[i][j]; 然后遍历正方形,这其中直接一个一个遍历会超时,记录一下正方形的边长k,下一轮从k-1开始遍历,(我就加了这一句话,就AC了,真的很神奇),子矩阵和:s1 = s[x2][y2] - s[x1-1][y2] - s[x2][y1-1] + s[x1- 1][y1 - 1];
全部评论
JAVA党,第二题样例过了交上去0。第三题卡常数,不同时间交上去分还TM不一样80-93不等。
第二题第三题改成C++就AK了,思路完全一致
只能说出题人和JAVA有仇
相关推荐
11-20 10:43
门头沟学院 嵌入式软件开发 点赞 评论 收藏
分享