找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 793|回复: 0
收起左侧

[提问] 18题,求解一下我这个做法错在哪里

[复制链接]

28

主题

12

精华

675

积分

超级会员

Rank: 4

积分
675
发表于 11-14-2015 06:45 PM | 显示全部楼层 |阅读模式

亲!马上注册或者登录会查看更多内容!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
  1. int[] missing2Numbers(int [] a) {
  2.                 if(a.length==0)
  3.                 return new int[]{1,2};
  4.                
  5.                 //counting sort, place elements in their rightful indexes
  6.                 for(int i=0;i<a.length;i++){
  7.                         if(a【i】>0 && a【i】<a.length && a[a【i】-1] != a【i】){
  8.                                 int temp = a【i】;
  9.                                 a【i】 = a[a【i】-1];
  10.                                 a[temp-1] = temp;
  11.                                 i--;
  12.                         }
  13.                 }
  14.                
  15.                 int[] res = new int[2];
  16.                 int place = 0;//index to place the missing elements
  17.                 int max=0;
  18.                 for(int i=0;i<a.length;i++){
  19.                         if(a【i】!=i+1){
  20.                                 res[place] = i+1;
  21.                                 place++;
  22.                         }
  23.                         max = Math.max(a【i】,max);
  24.                 }
  25.                
  26.                 if(place == 2){
  27.                         return res;
  28.                 } else if(place==0){
  29.                         return new int[]{a.length+1,a.length+2};
  30.                 } else {
  31.                         if(max==a.length+2){
  32.                                 res[place] = a.length+1;
  33.                         } else {
  34.                                 res[place] = a.length+2;
  35.                         }
  36.                        
  37.                         return res;
  38.                 }
  39.         }
复制代码
主要的思路来自于lc的first missing positive,利用counting sort方法将下标与数字值对应起来,接下来找出missing positive,但是一直wa,不知道可能出现错误的地方在哪里?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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