题解 | #车道线大师#

车道线大师

http://www.nowcoder.com/questionTerminal/d77726f4fef3486abe7d25294cd9fc8c

两次排序得到结果

const [n, m] = readline().split(' ').map(Number);
// arr: n * m * 4
let arr = [];
// id: n * m
const id = [];

for (let i = 0; i < n; i++) {
  const temp = readline().split(' ').map(Number);
  let arrTmp = [];
  let idTmp = [];
  for (let j = 0; j < m; j++) {
    arrTmp.push(temp.slice(j * 4, j * 4 + 4));
  }
  // 按照x的值升序排列
  arrTmp = arrTmp.sort((a, b) => a[1] - b[1]);
  for (let j = 0; j < m; j++) {
    // 存储每行的id排序
    idTmp.push(arrTmp[j][0]);
  }
  id.push(idTmp);
  // arr存储着每行的头和尾巴 n * m * 2
  arr.push([arrTmp[0], arrTmp[m - 1]]);
}
for (let i = 0; i < n; i++) {
  // 每行打印
  console.log(id[i].join(' '));
}
// 按照y降序排列
arr = arr.sort((a, b) => b[0][2] - a[0][2]);
// 遍历所有头、再是所有尾巴
for (let i = 0; i < 2; i++) {
  const temp = [];
  for (let j = 0; j < n; j++) {
    // 把每行的(头或尾)id打印下来
    temp.push(arr[j][i][0]);
  }
  console.log(temp.join(' '));
}

全部评论

相关推荐

01-30 16:13
浙江大学 Java
点赞 评论 收藏
分享
01-11 02:09
已编辑
华中师范大学 golang
京京洪洪学java:如果坚定转Java就要先做好暑期结果可能没那么好的准备,大厂也有做go的,也有接受内部切换技术栈的,go怎么就不行了呢?,ACM+华师肯定能接到一些大厂面试的,acm铜的基础可以让你比较轻松地应对中大厂的手撕,就是八股和项目要下硬功夫,至于找不到go项目?github上一直刷啊,跟刷b站主页一样,那么多好的go开源项目,怎么会找不到呢?刷到想学感兴趣的用ai吃透,试着改进或者吸收作为自己的项目,另一个选择就是考研了。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务