题目:

设有顺序放置n个球,每个球的颜色是红,白,蓝之一。要求重新安排这些球,使得所有红色的球在前,所有白色球居中,所有蓝色的球居后。重新安排时,对每种球的颜色只能查看一次,并且只允许交换操作来调整位置。

算法思想:

O(n),三个指针夹逼。

对于题目的要求,每个球只能查看一次,并且只能交换操作。那么就是暗示我们用指针进行遍历比对。

i=0,j=n-1,k=i;

遍历的规则:

1.i遇到红色直接跳过,j遇到蓝色直接跳过。

2.红》白》蓝,那么当Si>Sj,直接交换即可。并且交换以后的只不为白色,就往中间走一步。

3.k跟着i走。

4.当i,j都为白色,就启用k,k代替i往中间夹逼,遇到蓝色与Sj交换,遇到红色与Si交换。

5.最后k>=j,就结束。

例子:

白    红    蓝    白      蓝    蓝    红      白      红

i k                                                                 j

显然Si<Sj那么交换得到:(并且非红色,则前进。)

红    红    蓝    白      蓝    蓝    红      白      白

i k                                                         j

遇到红就跳,i++,k++:

红    红    蓝    白      蓝    蓝    红      白      白

i k                                                j

以此类推就可以得到:

红     红     红    蓝    蓝     蓝     白   白     白

红蓝白三色球的排列,红色居前,白色居中,蓝色居后,算法设计,每个球只能查看一次相关推荐

  1. 冲击力的红蓝白三色碰撞

    具有视觉冲击力的红蓝白三色碰撞,牢牢吸引注意力.蕾丝拼接立领短袖T恤 一年四季,轮回交替,我们都希望四季如春,但冬天的到来并不以你的意志为转移.没有冬天只有春夏也会很单调,就 如同南方那些从没去过北方 ...

  2. Photoshop学习第三课-你的证件照,红蓝白底随心换

    如何给带头发的人物抠图? 用快速选择工具大致选一下区域 2.点击这个选择并遮住 3.得到的照片是很难看的,但是先不用管.选择这个工具,这个工具可以实现将周边与背景颜色相近的部分来去掉的效果.很好用. ...

  3. 取消wps右键菜单_原来Office和WPS都可以这样换证件照底色!1秒红蓝白底随意切换...

    证件照是我们在生活中经常要用到的东西,但是证件照的额底色有很多种,不同的情况下要用到的证件照底色也不同,如果跑去照相馆换底色的话比较麻烦,其实我们自己在家也能给证件照换底色,而且超级简单! 今天小编就 ...

  4. 配置字段(居左,居中,居右,高度自适应)

    1.....var note = items.NOTE();2.... // 创建 主体时,需要的key_thisKey.push({ key: childName, w: childWidth, c ...

  5. 自定义UI控件:继承UIlabel,使label中的文字居上,居中,居下

    一般来说,在ios里面label中的文字垂直方向上是默认居中的,如果想要设置居上或者居下,在xib文件里面不能设置,只能自定义一个UI控件. label文字的水平位置,可以在xib文件中直接设置. i ...

  6. 2019华为性格测试题_小红书达人力荐!华为 Mate20 Pro红蓝新色最懂女人心

    1月10日,华为在北京三里屯CHAO酒店举行了一场与众不同的发布会,这次发布会的主题是"红蓝知己",发布了华为Mate 20 Pro的两款新配色--馥蕾红.璨星蓝,而这两款新配色也 ...

  7. 红蓝对抗之蓝队防守:ATTCK框架的应用

    企业大规模数字化转型的浪潮下,各类网络入侵事件频发.APT和黑客团伙活动猖獗,合规性驱动的传统安全防护建设已无法满足需求.近年来随着各级红蓝对抗行动的开展,企业安全建设正逐步向实战化转型,而MITRE ...

  8. c++游戏代码坦克大作战_一红一蓝多种模式的双人小游戏:红蓝大作战

    作者有话说:上次推荐的森林冰火人很多小伙伴后台找我要链接,或者搜索不到:首先声明下森林冰火人.同桌大作战都不是辣椒人游戏工作室研发的,小编也是微信小游戏双人栏目下搜索到的,如果想要玩双人小游戏的可以打 ...

  9. java先抽到红球获胜,【图片】红蓝球概率问题,通过程序模拟抽取,计算结果已出,有兴趣来看【非现役文职吧】_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我用的c语言,大一学的还没忘完....程序非常简单,就是生成随机数,然后根据随机数的结果进行计数就好了. 代码贴下面,有兴趣的可以看看. 懂行的请不要喷我 ...

最新文章

  1. python协程编程实例_Python异步编程之协程任务的调度操作实例分析
  2. 信息系统项目管理师-第二三章:信息系统项目管理基础与立项管理2
  3. Redis 五种数据结构以及三种高级数据结构解析以及使用
  4. Request Header Or Cookie Too Large
  5. 【算法导论】学习笔记——第9章 中位数和顺序统计量
  6. BZOJ3653 洛谷3899:谈笑风生——题解
  7. python经典程序实例-Python3经典100例(③)
  8. dede文章页调用当前栏目链接方法
  9. 伯努利方程实验装置QY-HGYL23
  10. FTP 连接超时解决办法
  11. 一个特别好用的免费json数据API接口--特别推荐
  12. VirtualDub在处理WMV文件时显示“MISSING CODEC”怎么办
  13. Excel表格中重要的数据如何隐藏不显示
  14. 如何分析数据建立数据表
  15. twitter开源_30位开源社区经理将在Twitter上关注
  16. 99物联金手指模组AFW127PI
  17. 修改人人商城服务器时间,修改收货地址 · 人人商城二次开发常用文档,超详细,微擎开发微擎二次开发【持续更新】 · 看云...
  18. python中元组拆包_Python 元组拆包示例(Tuple Unpacking)
  19. GPS接收机热启动、温启动、冷启动三种启动方式的区别
  20. jquery iframe 父子互操作

热门文章

  1. 物联网“遇上”云原生,会擦出怎样的火花?
  2. 什么是GPRS,CMWAP,CMNET-移动网络介绍
  3. 通过扔一个诱饵进行无源无监督域适应
  4. github创建organization并邀请其他成员
  5. 阿里AI实验室新添两员大将,易鑫集团计划融资8亿美元即将完成IPO | 大数据24小时
  6. ros构建机器人运动学模型_ROS机器人底盘(4)-3D仿真模型
  7. 【解决方案】AI+无人洗车能有多智能?EasyNVR赋能AI无人洗车视频结构化图像智能分析能力
  8. win10系统中ENSP AR启动代码40报错一些解决办法
  9. 灵魂发问!线程池到底创建多少线程比较合理?
  10. Office 2003 sp3(CVE-2012-0158)漏洞分析报告