一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

一亩三分地官方iOS手机应用下载
查看: 682|回复: 14
收起左侧

yahoo面经

[复制链接] |试试Instant~ |关注本帖
wltchester 发表于 2016-11-18 03:26:58 | 显示全部楼层 |阅读模式

() @ - -  |

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

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
输入[3, -10, -2, -5, 10, 4, 5, -1, 10, 2, -4], 输出[3, 10, 4, 5, 10, 2, -10, -2, -5, -1, -4]。 要求是single iteration和in-place。

评分

1

查看全部评分

myqdkl 发表于 2016-11-18 03:37:11 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
这个是找规律吗,lz能说的再具体一点吗,谢谢
回复 支持 反对

使用道具 举报

catinclay 发表于 2016-11-18 04:02:11 | 显示全部楼层
关注一亩三分地微博:
Warald
myqdkl 发表于 2016-11-18 03:37 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
这个是找规律吗,lz能说的再具体一点吗,谢谢

正的往左放 負的往右放
回复 支持 反对

使用道具 举报

 楼主| wltchester 发表于 2016-11-18 04:41:22 | 显示全部楼层
正的往左方,负的往右,还要保持相对顺序。
回复 支持 反对

使用道具 举报

小A要当码农 发表于 2016-11-18 04:52:47 | 显示全部楼层
是类似于冒泡排序的做法么。。。
求职神器indeed - 在全球最大的求职网站找找适合你的工作?
回复 支持 反对

使用道具 举报

csushin1992 发表于 2016-11-18 06:53:06 | 显示全部楼层
Single Iteration...求解...
回复 支持 反对

使用道具 举报

raincoatrun 发表于 2016-11-18 06:53:36 | 显示全部楼层
two pointer两边往中间走,inplace replace
回复 支持 反对

使用道具 举报

buweiningshi86 发表于 2016-11-18 06:55:10 | 显示全部楼层
two pointer, 跟leetcode move zeros 类似,只是这个move的是负的
回复 支持 反对

使用道具 举报

csushin1992 发表于 2016-11-18 07:10:33 | 显示全部楼层
buweiningshi86 发表于 2016-11-18 06:55
two pointer, 跟leetcode move zeros 类似,只是这个move的是负的

使用move zeroes的方法不能保证移到后面的负数是有序的吧。
回复 支持 反对

使用道具 举报

csushin1992 发表于 2016-11-18 07:11:30 | 显示全部楼层
raincoatrun 发表于 2016-11-18 06:53. 1point 3acres 璁哄潧
two pointer两边往中间走,inplace replace

这样不能保证后面的负数是有序的
回复 支持 反对

使用道具 举报

raincoatrun 发表于 2016-11-18 07:23:37 | 显示全部楼层
那就用index作为value,然后负数加个负号,bubble sort
回复 支持 反对

使用道具 举报

mayborin 发表于 2016-11-18 11:02:38 | 显示全部楼层
  1. public void re(int[] num){
  2.         if(num==null || num.length<2) return;
  3.         int i=0,j=1;
  4.     while(j<num.length){
  5.       if(num[i]>0) {i++;j++;}
  6.       else{//num[i] is negative, search for the next positive index
  7.         while(j<num.length&&num[j]<0) j++;
  8.         if(j<num.length){
  9.           int tmp=num[j];
  10.           for(int t=j;t>i;t--) num[t]=num[t-1];
  11.           num[i]=tmp;
  12.           i++;.鏈枃鍘熷垱鑷1point3acres璁哄潧
  13.           j++;
  14.         }
  15.     }
  16.   }
    .鏈枃鍘熷垱鑷1point3acres璁哄潧
  17. }
复制代码
回复 支持 反对

使用道具 举报

csushin1992 发表于 2016-11-18 11:51:51 | 显示全部楼层
raincoatrun 发表于 2016-11-18 07:23
那就用index作为value,然后负数加个负号,bubble sort

这样子似乎也不行。
1. 要求single iteration
2. Index作为Value,负数加上负号,那么会有一边是逆序的,如果AscendingOrder,那么负数部分逆序,如果是DescendingOrder,那么正数部分逆序。
回复 支持 反对

使用道具 举报

coldrainy 发表于 2016-11-20 08:03:26 | 显示全部楼层
这题是color sort 变型吧. LC 75.
回复 支持 反对

使用道具 举报

wangxinbo1123 发表于 2017-1-13 08:00:21 | 显示全部楼层
Bubble sort idea
  1. void part(vector<int>& vec) {
  2.     for(int j = 0; j < vec.size(); j++) { 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  3.         if(vec[j] > 0) {
  4.             for(int i = j; i-1 >= 0 && vec[i-1] < 0; i--)
  5.                 swap(vec[i-1], vec[i]);
  6.         }
  7.     }
  8. }
复制代码
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2017-2-20 20:10

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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