红蓝白三色球的排列,红色居前,白色居中,蓝色居后,算法设计,每个球只能查看一次
题目:
设有顺序放置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
以此类推就可以得到:
红 红 红 蓝 蓝 蓝 白 白 白
红蓝白三色球的排列,红色居前,白色居中,蓝色居后,算法设计,每个球只能查看一次相关推荐
- 冲击力的红蓝白三色碰撞
具有视觉冲击力的红蓝白三色碰撞,牢牢吸引注意力.蕾丝拼接立领短袖T恤 一年四季,轮回交替,我们都希望四季如春,但冬天的到来并不以你的意志为转移.没有冬天只有春夏也会很单调,就 如同南方那些从没去过北方 ...
- Photoshop学习第三课-你的证件照,红蓝白底随心换
如何给带头发的人物抠图? 用快速选择工具大致选一下区域 2.点击这个选择并遮住 3.得到的照片是很难看的,但是先不用管.选择这个工具,这个工具可以实现将周边与背景颜色相近的部分来去掉的效果.很好用. ...
- 取消wps右键菜单_原来Office和WPS都可以这样换证件照底色!1秒红蓝白底随意切换...
证件照是我们在生活中经常要用到的东西,但是证件照的额底色有很多种,不同的情况下要用到的证件照底色也不同,如果跑去照相馆换底色的话比较麻烦,其实我们自己在家也能给证件照换底色,而且超级简单! 今天小编就 ...
- 配置字段(居左,居中,居右,高度自适应)
1.....var note = items.NOTE();2.... // 创建 主体时,需要的key_thisKey.push({ key: childName, w: childWidth, c ...
- 自定义UI控件:继承UIlabel,使label中的文字居上,居中,居下
一般来说,在ios里面label中的文字垂直方向上是默认居中的,如果想要设置居上或者居下,在xib文件里面不能设置,只能自定义一个UI控件. label文字的水平位置,可以在xib文件中直接设置. i ...
- 2019华为性格测试题_小红书达人力荐!华为 Mate20 Pro红蓝新色最懂女人心
1月10日,华为在北京三里屯CHAO酒店举行了一场与众不同的发布会,这次发布会的主题是"红蓝知己",发布了华为Mate 20 Pro的两款新配色--馥蕾红.璨星蓝,而这两款新配色也 ...
- 红蓝对抗之蓝队防守:ATTCK框架的应用
企业大规模数字化转型的浪潮下,各类网络入侵事件频发.APT和黑客团伙活动猖獗,合规性驱动的传统安全防护建设已无法满足需求.近年来随着各级红蓝对抗行动的开展,企业安全建设正逐步向实战化转型,而MITRE ...
- c++游戏代码坦克大作战_一红一蓝多种模式的双人小游戏:红蓝大作战
作者有话说:上次推荐的森林冰火人很多小伙伴后台找我要链接,或者搜索不到:首先声明下森林冰火人.同桌大作战都不是辣椒人游戏工作室研发的,小编也是微信小游戏双人栏目下搜索到的,如果想要玩双人小游戏的可以打 ...
- java先抽到红球获胜,【图片】红蓝球概率问题,通过程序模拟抽取,计算结果已出,有兴趣来看【非现役文职吧】_百度贴吧...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我用的c语言,大一学的还没忘完....程序非常简单,就是生成随机数,然后根据随机数的结果进行计数就好了. 代码贴下面,有兴趣的可以看看. 懂行的请不要喷我 ...
最新文章
- python协程编程实例_Python异步编程之协程任务的调度操作实例分析
- 信息系统项目管理师-第二三章:信息系统项目管理基础与立项管理2
- Redis 五种数据结构以及三种高级数据结构解析以及使用
- Request Header Or Cookie Too Large
- 【算法导论】学习笔记——第9章 中位数和顺序统计量
- BZOJ3653 洛谷3899:谈笑风生——题解
- python经典程序实例-Python3经典100例(③)
- dede文章页调用当前栏目链接方法
- 伯努利方程实验装置QY-HGYL23
- FTP 连接超时解决办法
- 一个特别好用的免费json数据API接口--特别推荐
- VirtualDub在处理WMV文件时显示“MISSING CODEC”怎么办
- Excel表格中重要的数据如何隐藏不显示
- 如何分析数据建立数据表
- twitter开源_30位开源社区经理将在Twitter上关注
- 99物联金手指模组AFW127PI
- 修改人人商城服务器时间,修改收货地址 · 人人商城二次开发常用文档,超详细,微擎开发微擎二次开发【持续更新】 · 看云...
- python中元组拆包_Python 元组拆包示例(Tuple Unpacking)
- GPS接收机热启动、温启动、冷启动三种启动方式的区别
- jquery iframe 父子互操作
热门文章
- 物联网“遇上”云原生,会擦出怎样的火花?
- 什么是GPRS,CMWAP,CMNET-移动网络介绍
- 通过扔一个诱饵进行无源无监督域适应
- github创建organization并邀请其他成员
- 阿里AI实验室新添两员大将,易鑫集团计划融资8亿美元即将完成IPO | 大数据24小时
- ros构建机器人运动学模型_ROS机器人底盘(4)-3D仿真模型
- 【解决方案】AI+无人洗车能有多智能?EasyNVR赋能AI无人洗车视频结构化图像智能分析能力
- win10系统中ENSP AR启动代码40报错一些解决办法
- 灵魂发问!线程池到底创建多少线程比较合理?
- Office 2003 sp3(CVE-2012-0158)漏洞分析报告