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

微信网站开发设计泰安优化关键词排名哪家合适

微信网站开发设计,泰安优化关键词排名哪家合适,wordpress的菜单静态,做网站的服务器哪个系统好🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

在这里插入图片描述

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。
🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。
🎉欢迎 👍点赞✍评论⭐收藏

在这里插入图片描述

算法专栏学习

题目访问地址专栏
分发糖果https://blog.csdn.net/m0_50308467/article/details/135343315算法专栏

经典算法题 之 分发糖果

在这里插入图片描述

题目如下:

n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。

你需要按照以下要求,给这些孩子分发糖果:

  • 每个孩子至少分配到 1个糖果。
  • 相邻两个孩子评分更高的孩子会获得更多的糖果。

请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目

解答这道题,可以使用 贪心算法 进行解决。

我们可以先 初始化 每个孩子的糖果数量为 1,然后从左往右遍历评分数组,如果当前孩子的评分比前一个孩子的评分高,就将其糖果数量设为前一个孩子糖果数量加一。这样可以确保相邻两个评分高的孩子分配到的糖果数量相差至少为1。

但是我们还需要从右往左遍历一遍评分数组,来处理相邻两个评分高的孩子分配到的糖果数量相等的情况。如果当前孩子的评分比后一个孩子的评分高,且当前孩子的糖果数量不大于后一个孩子的糖果数量,就将其糖果数量设为后一个孩子糖果数量加一。这样既满足了相邻两个评分高的孩子分配到的糖果数量相差至少为1,又解决了相邻两个评分高的孩子分配到的糖果数量相等的情况。

最后,我们把每个孩子的糖果数量累加起来,就可以得到需要准备的最少糖果数目

具体实现逻辑如下:

1. 首先创建一个与评分数组大小相同的糖果数组,初始化为1,表示每个孩子至少分配到一个糖果。

2. 从左到右遍历评分数组,如果当前孩子的评分比前一个孩子高,那么将当前孩子的糖果数目设为前一个孩子糖果数目加1。

3. 再从右到左遍历评分数组,如果当前孩子的评分比后一个孩子高,并且当前孩子的糖果数目不大于后一个孩子的糖果数目,那么将当前孩子的糖果数目设为后一个孩子的糖果数目加1。

4. 最后计算糖果数组的总和,即为最少糖果数目。

以下是一个Java代码实现:

public class DistributeCandies {public static int distributeCandies(int[] ratings) {int n = ratings.length;int[] candies = new int[n];Arrays.fill(candies, 1); // 初始化糖果数组,每个孩子至少分配到一个糖果// 从左到右遍历调整糖果分配for (int i = 1; i < n; i++) {if (ratings[i] > ratings[i-1]) {candies[i] = candies[i-1] + 1;}}// 从右到左遍历调整糖果分配for (int i = n - 2; i >= 0; i--) {if (ratings[i] > ratings[i+1] && candies[i] <= candies[i+1]) {candies[i] = candies[i+1] + 1;}}// 统计总的糖果数int sum = 0;for (int candy : candies) {sum += candy;}return sum;}// 示例调用public static void main(String[] args) {int[] ratings = {1,0,2};System.out.println(distributeCandies(ratings)); // 输出3}
}

在这个示例中,distributeCandies() 方法接收一个评分数组 ratings ,并返回需要准备的最少糖果数目。

首先,我们使用一个长度为 n 的数组 candies 来保存每个孩子的糖果数量,初始值都为 1

然后,从左往右遍历评分数组,如果当前孩子的评分比前一个孩子的评分高,就将其糖果数量设为前一个孩子糖果数量加一,保证相邻两个评分高的孩子糖果数量相差至少为1

接着,我们从右往左遍历评分数组,如果当前孩子的评分比后一个孩子的评分高,且当前孩子的糖果数量不大于后一个孩子的糖果数量,就将其糖果数量设为后一个孩子糖果数量加一,保证相邻两个评分高的孩子糖果数量相差至少为1。

最后,我们把每个孩子的糖果数量累加起来,得到需要准备的最少糖果数目。

main() 方法中,我们提供了一个简单的测试案例,将评分数组设为 [1,0,2],调用 distributeCandies() 方法进行计算,期望的输出为3。

在这里插入图片描述

http://www.tj-hxxt.cn/news/55252.html

相关文章:

  • 日照seo网站外包电商营销
  • 知名广告公司优化大师有用吗
  • 厚街东莞网站推广seo研究协会网app
  • 可靠吗北京网站建设公司厦门谷歌seo
  • 做教育网站宣传策略宁波关键词排名优化
  • 深圳做网站建设常见的网站推广方式
  • 邢台网站建设信息618网络营销策划方案
  • 大丰做网站费用网站运营推广选择乐云seo
  • 网站开发有年龄限制吗网络推广网站推广方法
  • 沧州做英文网站哪家公司好长沙优化排名
  • 阿里巴巴上做英文网站一年多少钱百度电话客服24小时人工
  • 如何做一元购物网站百度官网推广
  • 网页拖拽设计工具上海关键词排名优化公司
  • wordpress破解汉化宜昌seo
  • 草图网站千锋教育培训机构就业率
  • 开发者软件下载宁波seo整体优化
  • 企业网站建设 南通温州seo按天扣费
  • 建设一个电商网站的流程百度网盘app下载安装电脑版
  • 做网站设计需要办理icp百度一下浏览器
  • 徐闻网站建设公司百度竞价被换着ip点击
  • 进服务器编辑网站怎么做怎么买到精准客户的电话
  • 网站是做百度快照推广好网络推广有哪些常见的推广方法
  • wordpress自己电脑装单页网站怎么优化
  • 品牌网站建设3a小蝌蚪今日新闻头条
  • 网站付费功能描述种子搜索引擎torrentkitty
  • 台州网站建设开发下载应用商店
  • 精益生产网站开发方案百度一下官方网页
  • 域名已买 可以找其它人做网站吗网络科技公司骗了我36800
  • 织梦模板大气网站建设类网站模板下载网络营销教程
  • 淘宝客做网站好还是建群号企业推广宣传方案