当前位置: 首页 > news >正文

建设电子商务网站的启示室内设计项目概况案例

建设电子商务网站的启示,室内设计项目概况案例,网站建设话术开场白,手机网站建设渠道链接 假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中…

链接
假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数 n ,能否在不打破种植规则的情况下种入 n 朵花?能则返回 true ,不能则返回 false 。

示例 1:

输入:flowerbed = [1,0,0,0,1], n = 1
输出:true

示例 2:

输入:flowerbed = [1,0,0,0,1], n = 2
输出:false

提示:

1 <= flowerbed.length <= 2 * 104
flowerbed[i] 为 0 或 1
flowerbed 中不存在相邻的两朵花
0 <= n <= flowerbed.length

1.暴力求解

从数组的首个元素开始判断是否种花,判断当前位置的前后位置是否种花,要注意数组越界问题和首地址和尾地址位置问题。

bool canPlaceFlowers(int* flowerbed, int flowerbedSize, int n){int i=0;if(n==0){return true;}if(flowerbedSize==1){if(flowerbed[i]==0){flowerbed[i]==1;n--;i++;}}while(i<flowerbedSize){if(i==0){if(flowerbed[0]==0&&flowerbed[1]==0){flowerbed[i]==1;n--;i+=2;}else{i+=2;}}else if(i==flowerbedSize-1){if(flowerbed[i]==0&&flowerbed[i-1]==0){flowerbed[i]=1;n--;}else{i++;}} else if(flowerbed[i]==1){i+=2;}else if(flowerbed[i]==0&&i>0&&flowerbed[i-1]==0&&flowerbed[i+1]==0&&i+1<flowerbedSize){flowerbed[i]==1;n--;i+=2;}else if(flowerbed[i+1]==1&&i+1<flowerbedSize){i+=3;}else{i+=2;}}if(n<=0){return true;}else{return false;}
}
2.暴力优化

可以优化下知道在什么情况下可以种花,当不处于临界位置的时候,如果当前位置的值为0,前面一个位置和后面一个位置的值都为0,就可以种花,当第一个位置和第二个位置的值或者最后一个位置的值和前一个位置的值为0的时候也可以种花。要注意数组越界的问题。

bool canPlaceFlowers(int* flowerbed, int flowerbedSize, int n){                                                for(int i=0;i<flowerbedSize;i++){// printf("i=%d\n",i);if(flowerbed[i]==0&&(i==0||flowerbed[i-1]==0)&&(((i+1<flowerbedSize)&&(flowerbed[i+1]==0))||i==flowerbedSize-1)){flowerbed[i]=1;n--;}}return n<=0;
}
0求解法

长度为1且值为0,直接种植,如果元素不全为0统计0的个数如果连续三个1就可以种一个,如果全为0,如果长度为2,只能种一个,否则就是0的个数除以2加1

bool canPlaceFlowers(int* flowerbed, int flowerbedSize, int n){                                                int count=0,i,sum=0,flage=0;if(flowerbedSize==1){if(flowerbed[0]==0){return true;}}if(flowerbed[0]==0){count++;}for(i=0;i<flowerbedSize;i++){if(flowerbed[i]==0){count++;}else if(count>=2){flage=1;sum+=(count-1)/2;count=0;}else if(count<2){count=0;flage=1;}}if(count>=2){if(flage==0){if(count==2){sum-=1;}else{sum+=count/2;}}else{if(count==2){sum+=1;}else{if(count%2==0){sum+=count/2;}else{sum+=(count-1)/2;}}}}if(sum>=n){return true;}else{return false;}
}
http://www.yayakq.cn/news/97496/

相关文章:

  • 阿里巴巴建站多少钱做的网站底部应该标注什么
  • 软件下载免费大全网站网站建设 微信小程序
  • 网站建设相关的书籍学校建设评建工作网站
  • 2014个人网站备案WordPress投票主题系统
  • 网站建设项目进度表怎么看一个网站是不是仿站
  • 网站不想让百度收录仁怀哪里可以做网站
  • 17网站一起做 佛山网站开发 学习步骤
  • 网站开发动态结构设计东莞优化网页关键词
  • 导购类网站怎么做工业设计是什么
  • 一个公司备案两个网站wordpress 导航栏效果
  • 自家电脑做网站服务器w7花生壳网络营销比较常用的营销模式有哪些
  • 北京建网站多少钱做微信网站公司
  • 网站制作方案相信乐云seo产品推广文案
  • 河北网站制作公司个人博客网站设计的目的
  • 网站开发公司哪个好云主机建站
  • 建设银行杭州招聘网站天元建设集团有限公司邮政编码
  • 动态ip怎么建设网站找人代做网站需要注意什么
  • 网站建设小程序开发医院网站建设进度及实施过程
  • 荆州网站开发网站首页被黑
  • 网站开发培训 价格旅游景点网站建设
  • 企业网站可信认证必须做吗做app网站需要什么技术支持
  • 山东省级建设主管部门网站如何做试玩类网站
  • 猎聘招聘官方网站哪个行业该做网站但是没有做
  • 深圳网站建设公司报价单温州最新消息
  • 国内vps做网站要备案吗轻淘客网站建设
  • 网址与网站的区别阿里云编辑建设好的网站
  • 邯郸网站seo免费高清视频在线观看
  • 手机网站建设设计6微信公众号的h5网站开发6
  • 提供秦皇岛网站建设价格黄冈工程建设标准造价信息网
  • 高端网站建设软件开发手机网站关键词排名查询