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

如何做网站限制策略上海aso苹果关键词优化

如何做网站限制策略,上海aso苹果关键词优化,好玩的传奇,唐山正规做网站的公司Every day a Leetcode 题目来源:2086. 从房屋收集雨水需要的最少水桶数 解法1:贪心 我们可以对字符串 hamsters 从左到右进行一次遍历。 每当我们遍历到一个房屋时,我们可以有如下的选择: 如果房屋的两侧已经有水桶&#xff…

Every day a Leetcode

题目来源:2086. 从房屋收集雨水需要的最少水桶数

解法1:贪心

我们可以对字符串 hamsters 从左到右进行一次遍历。

每当我们遍历到一个房屋时,我们可以有如下的选择:

  • 如果房屋的两侧已经有水桶,那么我们无需再放置水桶了;

  • 如果房屋的两侧没有水桶,那么我们优先在房屋的「右侧」放置水桶,这是因为我们是从左到右进行遍历的,即当我们遍历到第 i 个位置时,前 i−1 个位置的房屋周围都是有水桶的。因此我们在左侧放置水桶没有任何意义,而在右侧放置水桶可以让之后的房屋使用该水桶。

  • 如果房屋的右侧无法放置水桶(例如是另一栋房屋或者边界),那么我们只能在左侧放置水桶。如果左侧也不能放置,说明无解。

我们可以通过修改字符串来表示水桶的放置,从而实现上述算法。一种无需修改字符串的方法是,每当我们在房屋的右侧放置水桶时,可以直接「跳过」后续的两个位置,因为如果字符串形如 H.H,我们在第一栋房屋的右侧(即两栋房屋的中间)放置水桶后,就无需考虑第二栋房屋;如果字符串形如 H…,后续没有房屋,我们也可以全部跳过。

代码:

/** @lc app=leetcode.cn id=2086 lang=cpp** [2086] 从房屋收集雨水需要的最少水桶数*/// @lc code=start
class Solution
{
public:int minimumBuckets(string hamsters){int n = hamsters.size();int bucket = 0;for (int i = 0; i < n; i++){if (hamsters[i] == 'H'){if (i + 1 < n && hamsters[i + 1] == '.'){bucket++;i += 2;}else if (i - 1 >= 0 && hamsters[i - 1] == '.')bucket++;elsereturn -1;}}return bucket;}
};
// @lc code=end

结果:

复杂度分析:

时间复杂度:O(n),其中 n 是字符串 hamsters 的长度。

空间复杂度:O(1)。

解法2:动态规划

设遍历至前 i 个字符满足条件的最小水桶数为 dp[i]。

若 street[i - 1] 为 ‘.’:

  • 不放置水桶。此时有
  • 若前面一个为房屋(street[i - 2] == ‘H’),可放置水桶。此时有

else if street[i - 1] 为 ‘H’:

  • 前方必须放置水桶,则必须满足 street[i - 2] == ‘.’。此时有
  • 上一个条件满足情况下如果水桶前方是房子(street[i - 3] == ‘H’),则这个水桶也可以接到前面房子的水。此时有

所有的状态转移取最小值即可。

代码:

/** @lc app=leetcode.cn id=2086 lang=cpp** [2086] 从房屋收集雨水需要的最少水桶数*/// @lc code=start// 贪心// class Solution
// {
// public:
//     int minimumBuckets(string hamsters)
//     {
//         int n = hamsters.size();
//         int bucket = 0;
//         for (int i = 0; i < n; i++)
//         {
//             if (hamsters[i] == 'H')
//             {
//                 if (i + 1 < n && hamsters[i + 1] == '.')
//                 {
//                     bucket++;
//                     i += 2;
//                 }
//                 else if (i - 1 >= 0 && hamsters[i - 1] == '.')
//                     bucket++;
//                 else
//                     return -1;
//             }
//         }
//         return bucket;
//     }
// };class Solution
{
private:
#define INF 0x3F3F3F3F
#define MAX_LEN 1e5 + 10public:int minimumBuckets(string street){int n = street.size();vector<int> dp(MAX_LEN, INF);// 初始化dp[0] = 0;// 状态转移for (int i = 1; i <= n; i++){if (street[i - 1] == '.'){dp[i] = dp[i - 1];if (i - 2 >= 0 && street[i - 2] == 'H')dp[i] = min(dp[i], dp[i - 2] + 1);}else if (street[i - 1] == 'H'){if (i - 2 >= 0 && street[i - 2] == '.'){dp[i] = dp[i - 2] + 1;if (i - 3 >= 0 && street[i - 3] == 'H'){dp[i] = min(dp[i], dp[i - 3] + 1);}}}}return dp[n] >= INF ? -1 : dp[n];}
};
// @lc code=end

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(n),其中 n 是字符串 street 的长度。

空间复杂度:O(MAX_LEN)。状态数组开销,MAX_LEN = 1e5 + 10。

http://www.hkea.cn/news/263778/

相关文章:

  • 热烈祝贺网站上线泉州seo代理计费
  • 网站平台建设意见长沙有实力seo优化
  • 深圳网站如何制作西安seo网站推广优化
  • 网站建设业务文案网站seo检测工具
  • 石家庄做外贸网站建设现在最好的营销方式
  • 兰州做网站公司有哪些html+css网页制作成品
  • 福州做网站的公司多少钱信息流优化
  • 群晖的网站开发百度客服怎么转人工
  • 制作网站项目流程无锡网站建设seo
  • 最好的开发网站建设价格如何搜索网页关键词
  • 做网站犯法了 程序员有责任吗网站建设合同
  • 建设部职称网站关键词优化营销
  • 做seo还要需要做网站吗百度热搜榜排行
  • 福建城市建设厅网站怎么推广一个网站
  • 机构网站建设需要交费吗关键词挖掘
  • 专业网站建设费用报价今日最新消息
  • 电商网站建设论文2022黄页全国各行业
  • 能源企业 网站建设网络营销的应用
  • 如何看网站是用什么语言做的关键词排名是由什么决定的
  • 政府网站建设招标书百度网站收录
  • 已经有了网站怎么做推广哈尔滨关键词优化报价
  • 网站建设与管理作业镇江推广公司
  • 域名申请好后 如何建设网站网站权重划分
  • 佛山百度网站快速优化网络营销推广工具
  • 建一个网站需要哪些人广州seo网站推广公司
  • 建设银行etc官方网站搜索引擎优化的七个步骤
  • 做网站需要花钱吗海南百度推广运营中心
  • 做的网站显示图片很慢百度运营公司
  • 青州哪里做网站公司推广渠道
  • 网站面包屑导航怎么做的网推接单平台有哪些