12
返回列表 发新帖
楼主: xihanvhai001
跳转到指定楼层
上一主题 下一主题
收起左侧

7/21 口袋宝石 电面二

🔗
mtrsen 2017-7-23 10:54:27 | 只看该作者
全局:
dukecat0613 发表于 2017-7-22 11:35
也就是说 r g g b yellow gray 也是可行的?

补充内容 (2017-7-22 11:36):

我觉得可以,看你的算法怎么实现了
回复

使用道具 举报

🔗
mtrsen 2017-7-23 10:58:53 | 只看该作者
全局:
dukecat0613 发表于 2017-7-22 11:35
也就是说 r g g b yellow gray 也是可行的?

补充内容 (2017-7-22 11:36):

我甚至觉得red red green green blue 然后再放其他的都可以
回复

使用道具 举报

🔗
dukecat0613 2017-7-23 11:38:43 | 只看该作者
全局:
我觉得也是可以的
回复

使用道具 举报

🔗
wangkd93 2017-7-24 02:26:30 | 只看该作者
全局:
所以这题思路是什么样的啊,能用LC sort color的one pass方法写么
回复

使用道具 举报

🔗
 楼主| xihanvhai001 2017-7-25 04:58:16 | 只看该作者
全局:
代码我就不贴了,简单说一下思路,就是two pointer,l 和 r,设l之前的都是红色或者其它不重要的颜色,r之后都是蓝色或者其它不重要的颜色,另外一个pointer 从l开始遍历,知道l大于r, 遇到红色就和l指向的元素交换一下,同时更新l pointer, 遇到蓝色就和r指向的pointer交换一下,同时更新rpointer,这样过一遍就好了
回复

使用道具 举报

🔗
 楼主| xihanvhai001 2017-7-25 04:59:19 | 只看该作者
全局:
mtrsen 发表于 2017-7-22 11:33
red 和red相同为什么要分开呢,最起码排序相同的肯定要在一起吧

red不一定要在一起,但是red一定要在green 和 blue之前
回复

使用道具 举报

🔗
wangkd93 2017-7-28 04:55:28 | 只看该作者
全局:
xihanvhai001 发表于 2017-7-25 04:58
代码我就不贴了,简单说一下思路,就是two pointer,l 和 r,设l之前的都是红色或者其它不重要的颜色,r之 ...

更新l或者r pointers的时候得考虑指针不能指向除了给定三种颜色的其他颜色吧,要不然无法保证其他颜色相对位置不变啊
回复

使用道具 举报

🔗
 楼主| xihanvhai001 2017-7-28 05:54:46 | 只看该作者
全局:
wangkd93 发表于 2017-7-28 04:55
更新l或者r pointers的时候得考虑指针不能指向除了给定三种颜色的其他颜色吧,要不然无法保证其他颜色相 ...

对呀,遇到其它颜色就跳过
回复

使用道具 举报

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

本版积分规则

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