查看: 1110| 回复: 2
跳转到指定楼层
上一主题 下一主题
收起左侧

[二分/排序/搜索] 想讨论下这题lc 1424

🔗
hjy | 只看该作者 |倒序浏览
全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
本帖最后由 hjy 于 2020-7-29 13:07 编辑

我用java写了个排序版本的代码,但是不通过,不知道bug为何。。想请求下大佬帮助

题目链接 https://leetcode.com/problems/diagonal-traverse-ii/题目链接


  1. class Solution {
  2.     public int[] findDiagonalOrder(List<List<Integer>> nums) {
  3.         class comp implements Comparator<List<Integer>>{
  4.             public int compare(List<Integer> a, List<Integer> b){
  5.                 return a.get(1) == b.get(1) ? b.get(2).compareTo(a.get(2)):a.get(1).compareTo(b.get(1));
  6.             }
  7.         }
  8.         
  9.         List<List<Integer>> list = new ArrayList<>();
  10.         for (int i = 0; i < nums.size(); i++){
  11.             for (int j = 0; j < nums.get(i).size(); j++){
  12.                 List<Integer> element = new ArrayList<>();
  13.                 element.add(nums.get(i).get(j));
  14.                 element.add(i+j);
  15.                 element.add(i);
  16.                 list.add(element);
  17.             }
  18.         }
  19.         Collections.sort(list, new comp());
  20.         int[] res = new int[list.size()];
  21.         for (int i = 0; i < res.length; i++){
  22.             res[i] = list.get(i).get(0);
  23.         }
  24.         return res;
  25.     }
  26. }
复制代码


[/i]

上一篇:Unique Path - DP的两种类型
下一篇:刷题交流 该怎么继续提高
🔗
bitzyq 2020-7-29 13:55:56 | 只看该作者
全局:
我来帮下楼主吧,你代码第5行应该改成return a.get(1).equals(b.get(1)) ? b.get(2).compareTo(a.get(2)):a.get(1).compareTo(b.get(1));

之所以你会通过大部分的test case是因为Java对于-128到127的Integer有缓存机制,所以在数据范围比较小的情况下你用a.get(1) == b.get(1)是可以比较两个Integer值是否相等的。

评分

参与人数 1大米 +1 收起 理由
hjy + 1 很有用的信息!

查看全部评分

回复

使用道具 举报

🔗
 楼主| hjy 2020-7-29 23:59:47 | 只看该作者
全局:
bitzyq 发表于 2020-7-29 13:55
我来帮下楼主吧,你代码第5行应该改成return a.get(1).equals(b.get(1)) ? b.get(2).compareTo(a.get(2)):a ...

Oh 差点忘了这茬了。。。谢谢帮助!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表