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

邯郸网站建设邯郸网站制作网站建设视觉营销

邯郸网站建设邯郸网站制作,网站建设视觉营销,怎么自己建立网站及建立网站方法,坚决把快准严细实要求落实到位其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 ​​​​​方法一#xff1a;贪心 2.2 贪心算法一般思路 三、代码 3.1 ​​​​​方法一#xf… 其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 ​​​​​方法一贪心 2.2 贪心算法一般思路 三、代码 3.1 ​​​​​方法一贪心 四、复杂度分析 4.1 ​​​​​方法一贪心  前言 这是力扣的 605 题难度为简单解题方案有很多种本文讲解我认为最奇妙的一种。 我的博客即将同步至腾讯云开发者社区邀请大家一同入驻https://cloud.tencent.com/developer/support-plan?invite_code3ev3gir1q680g 一、题目描述 假设有一个很长的花坛一部分地块种植了花另一部分却没有。可是花不能种植在相邻的地块上它们会争夺水源两者都会死去。 给你一个整数数组 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 * 104flowerbed[i] 为 0 或 1flowerbed 中不存在相邻的两朵花0 n flowerbed.length 二、题解 2.1 ​​​​​方法一贪心 思路与算法 题目要求是否能在不打破规则的情况下插入n朵花与直接计算不同采用“跳格子”的解法只需遍历不到一遍数组处理以下两种不同的情况即可 当遍历到index遇到1时说明这个位置有花那必然从index2的位置才有可能种花因此当碰到1时直接跳过下一格。当遍历到index遇到0时由于每次碰到1都是跳两格因此前一格必定是0此时只需要判断下一格是不是1即可得出index这一格能不能种花如果能种则令n减一然后这个位置就按照遇到1时处理即跳两格如果index的后一格是1说明这个位置不能种花且之后两格也不可能种花参照 1 直接跳过3格。 当n减为0时说明可以种入n朵花则可以直接退出遍历返回true如果遍历结束n没有减到0说明最多种入的花的数量小于n则返回false。 2.2 贪心算法一般思路 贪心算法的思路是从问题的某一个初始解出发然后通过一系列的贪心选择每一步都做出在当前看来最好的选择从而希望导致结果是整体最优的算法。这个算法并不会从整体最优上加以考虑它所做出的仅仅是在某种意义上的局部最优解。 具体来说贪心算法的步骤如下 建立数学模型来描述问题。把求解的问题分成若干个子问题。对每个子问题求解得到子问题的局部最优解。把子问题的解局部最优解合成原来解问题的一个解。 贪心算法的关键在于贪心选择性质和制定贪心策略其中贪心选择性质是指问题的最优解可以通过一系列局部最优的选择达到且每一步的选择依赖于以前作出的选择但不依赖于后面要作出的选择。而贪心策略则是为了达到问题的最优解或较优解而制定的策略。 需要注意的是贪心算法并不总是能够得到全局最优解因为它每一步都只考虑当前的最优选择而忽略了全局的情况。因此贪心算法适用于那些具有最优子结构性质和贪心选择性质的问题。 三、代码 3.1 ​​​​​方法一贪心 Java版本 class Solution {public boolean canPlaceFlowers(int[] flowerbed, int n) {for (int i 0; i flowerbed.length n 0;) {if (flowerbed[i] 1) {i 2;} else if (i flowerbed.length - 1 || flowerbed[i 1] 0) {n--;i 2;} else {i 3;}}return n 0;} } C版本 class Solution { public:bool canPlaceFlowers(vectorint flowerbed, int n) {for (int i 0; i flowerbed.size() n 0;) {if (flowerbed[i] 1) {i 2;} else if (i flowerbed.size() - 1 || flowerbed[i 1] 0) {n--;i 2;} else {i 3;}}return n 0;} };Python版本 class Solution:def canPlaceFlowers(self, flowerbed, n):i 0while i len(flowerbed) and n 0:if flowerbed[i] 1:i 2elif i len(flowerbed) - 1 or flowerbed[i 1] 0:n - 1i 2else:i 3return n 0Go版本  package main import fmt func canPlaceFlowers(flowerbed []int, n int) bool { i : 0 for i len(flowerbed) n 0 { if flowerbed[i] 1 { i 2 } else if i len(flowerbed)-1 || flowerbed[i1] 0 { n - 1 i 2 } else { i 3 } } return n 0 } func main() { flowerbed : []int{1, 0, 0, 0, 1} n : 1 result : canPlaceFlowers(flowerbed, n) fmt.Println(result) // Output: true } 四、复杂度分析 4.1 ​​​​​方法一贪心 时间复杂度O(m)其中 m 是数组 flowerbed 的长度。需要遍历数组一次。空间复杂度O(1)。额外使用的空间为常数。
http://www.w-s-a.com/news/324078/

相关文章:

  • dedecms怎么制作网站合肥电商网站开发
  • 网站开发通用流程图做flash的网站
  • 营销型网站有哪些平台网站建设藤设计
  • 网站需求分析网站建设美食网站建设多少钱
  • 有专门做网站的吗建德网站
  • 做网站要买服务器吗单页设计思路
  • 一 电子商务网站建设规划网站开发前端框架和后端框架
  • 自助网站建设系统软件自己免费建设网站
  • 百度微建站access如何与网站连接数据库
  • ppt素材免费网站网站正能量晚上免费软件
  • 个人淘宝客网站如何备案搭建一个平台要多少钱
  • nginx 网站建设淘客网站怎么做首页
  • 网站制作的基本步骤是手机网站建设 新闻
  • 水墨 网站源码工装
  • 任丘网站建设服务网站 建设原则
  • 长沙做一个网站要多少钱网站底部备案代码
  • wordpress构建自定义设置页面seo培训学什么
  • 延安有哪些做网站的公司如何建设网站?
  • 网站建设者属于广告经营者吗网站管理程序
  • 网站内容优化方法深圳市宝安区怎么样
  • 视频网站开发视频公司网站制作多少钱
  • 单页简洁手机网站模板购物软件
  • 素材网站官网低价网站建设费用预算
  • 苏州网站设计kgwl个人网站有什么外国广告做
  • 浙江省网站建设报价简单网站开发工具
  • 物流网站的建设wordpress电视直播插件下载
  • 简述网站开发流程青岛做网站建设价格低
  • 网站开发的业务需求分析杭州推广公司
  • 网站建设技术实现难点app开发需要哪些软件
  • 响水建设局网站做网站需要会哪些知识