编写函数,实现许多图片编辑软件都支持的“填充颜色”功能

enum Color

{

Black,White,Red,Yellow,Green

}

boolean paintFill(Color[][] screen,int x,int y,Color ocolor,Color ncolor)

{

if(x<0||x>=screen[0].length||y<0||y>=screen.length)

{

return false;

}

if(screen[y][x]==ocolor)

{

screen[y][x]=ncolor;

paintFill(screen,x-1,y,ocolor,ncolor);//左

paintFill(screen,x+1,y,ocolor,ncolor);//右

paintFill(screen,x,y-1,ocolor,ncolor);//上

paintFill(screen,x,y+1,ocolor,ncolor);//下

}

return true;

}

boolean paintFill(Color [][] screen,int x,int y ,Color ncolor)

{

if(screen[y][x]==ncolor) return false;

return paintFill(screen,x,y,screen[y][x],ncolor);

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-12 21:03:10

编写函数,实现许多图片编辑软件都支持的“填充颜色”功能的相关文章

9.9递归和动态规划(七)——实现许多图片编辑软件都支持的“填充颜色”功能

/** * 功能:实现许多图片编辑软件都支持的"填充颜色"功能. * 给定一个屏幕(以二维数组表示,元素为颜色值).一个点和一个新的颜色值,将新颜色填入这个店的周围区域,知道原来的颜色值全都改变. */ /** * 思路:假设要对一个像素(比如红色)调用paintFill,即对周围的像素逐一调用paintFill, * 向外扩张,一旦碰到非红色的像素就停止填充. * * 注意:碰到图像问题,要注意screen[y][x]中x和y的顺序.x表示水平轴(即自左向右),实际上对应于列数,而非

3. 上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点?

3.  上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点? (1)Microsoft TFS的优缺点: 优点:是对敏捷,msf,cmmi等项目.过程管理.过程改善的支持.任务版上能将需求.项目进度一览无余,对于小团队而言,比甘特图更有用. 缺点:能应用起来的团队.公司的数量极少,多数真正用起来,也就是源代码管理这部分,这也仅仅是占TFS极小部分功能. (2)GitHub的优缺点: 优点:GitHub提供Git存储库服务,基于web,允许你使用Git的源代码管理功能

数据恢复软件使用经验-支持U盘,手机SD卡,硬盘数据,解决图片恢复后打不开的问题

数据恢复软件使用经验-支持U盘,手机SD卡,硬盘数据,解决图片恢复后打不开的问题. 用过很多数据恢复软件,最早EasyRecovery pro,恢复过U盘,手机SD卡,硬盘数据.但现在下载不了最新版,而且BAIDU出来的都是国产收费软件假冒的,因为国产恢复软件都太差劲了,所以想偷梁换柱,不仅要收费,而且网上评论恢复效果也很差. 后来用过两款国外crack版的recuva和FinalData,效果也不错,但是有几次帮朋友恢复手机sd卡的时候,照片图片恢复后很多,打不开也不能预览.研究了很长时间,和

MIS的趋势必定是围绕机器取代人手,分工越来越细(小餐厅都支持微信自助点餐,结账时就打个折,相当于省了1、2个人手,SQL发明以后,程序员的工作更多了)

最后,我还想简略的谈谈MIS及MIS快速开发工具的未来. MIS的趋势必定是围绕机器取代人手,分工越来越细.比如:现在有些小型的咖啡厅里的财务子系统就简单到不需要使用者有会计知识,相当于省了会计人手:有些小餐厅都支持微信自助点餐,结账时就打个折,相当于省了1.2个人手.也就是说,企业管理系统,未来会逐渐把非核心的功能外包出去,让更专业的公司去做. 如果以为我的这款工具仅仅作为快速开发工具,那就错了.现在进销存.HIS.ERP.CRM等等MIS软件,要么走通用化,要么走定制化.而我认为未来要走组装

jsWindow 对象 Window 对象 Window 对象表示浏览器中打开的窗口。 如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。 注释:没有应用于 window 对象的公开标准,不过所有浏览器都支持该对象。 Window 对象集合 集合 描述 frames[] 返回窗口中所有命

一.JSX简介 JSX就是Javascript和XML结合的一种格式.React发明了JSX,利用HTML语法来创建虚拟DOM.当遇到<,JSX就当HTML解析,遇到{就当JavaScript解析. 如下(JS写法) var child1 = React.createElement('li', null, 'First Text Content'); var child2 = React.createElement('li', null, 'Second Text Content'); var

零基础学python-15.1 为什么需要编写函数

1.为什么需要函数? 1)最大化的代码重用和最小化的代码冗余 我们下面举一个简单例子:加法 >>> a=1 >>> b=1 >>> c=a+b >>> c 2 >>> d=1 >>> f=1 >>> e=d+f >>> e 2 从上面的代码我们看见,如果要做多次加法,那么需要写一大段的代码,但是如果我们把加法写成函数: >>> def add(x

万能视频格式转换器是一款功能强大的全能视频格式转换软件,支持多种视频格式转换。万能视频转换器可以将R

万能视频格式转换器是一款功能强大的全能视频格式转换软件,支持多种视频格式转换.万能视频转换器可以将RM.RMVB.AVI.WMV.MPG .MPEG.FLV.3GP.MP4.SWF.ASF.DIVX.XVID.3GP2.FLV1.MPEG1.MPEG2.MPEG3.MPEG4.H264等视频格式转换,用于各种mp4播放机.手 机.psp游戏机.iPod.iPod.dvd.iphone机.高清电视等设备播放.这是一款用于专业视频转换和压缩的软件,其采用全新的国际一流编解 码技术,转换质量和速度都处

Swift具体解释之三----------函数(你想知道的都在这里)

函数(你想知道的都在这里) 注:本文为作者自己总结.过于基础的就不再赘述 ,都是亲自測试的结果.如有错误或者遗漏的地方.欢迎指正.一起学习. 1. 函数的简单定义和调用 简单的无參函数就不再赘述 , name为形參 .也是内部在数名 . func sayHello(name:String) ->String { return name+" say: hello" } 调用的时候也非常easy sayHello("zhangsan") 是不是非常easy呀! 2

hp电脑重装win7 64位 后 所有软件都装不上问题

hp 电脑重装后 所有软件都装不上问题 装了近100来次机,第一次遇到这样的. bug描述: 新笔记本刚装了纯净版的64位旗舰版win7,想装软件,就弹出已停止工作.比如装火狐浏览器,弹出火狐浏览器网络安装包已停止工作,装搜狗输入法,提示安装程序已停止工作兼容性右键管理员运行都试过了不行,请问怎么解决这个问题...除了网卡驱动用驱动精灵装上以后,其他所有的驱动用驱动精灵都提示安装包已损坏,不然就是已停止工作... 问题解决: 参考一: http://tieba.baidu.com/p/22037