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

day-23 分发糖果

在这里插入图片描述

参考了答案。。。。。。

思路:所有位置的糖果数应该满足左规则和右规则 左规则:如果ratings[i]>ratings[i-1],则应该比左边多一颗糖果 右规则:如果ratings[i]>ratings[i+1],则应该比右边多一颗糖果 最终糖果数为ans[i]=Math.max(left[i],right[i])

code:

class Solution {
    public int candy(int[] ratings) {
        int n=ratings.length;
        int left[]=new int[n];
        int right[]=new int[n];
        int ans[]=new int[n];
        Arrays.fill(left,1);
        for(int i=1;i<n;i++){//满足左规则
            if(ratings[i]>ratings[i-1]){
                left[i]=left[i-1]+1;
            }
        }
        for(int i=0;i<n;i++){
            right[i]=left[i];
        }
        for(int i=n-2;i>=0;i--){//满足右规则
            if(ratings[i]>ratings[i+1]){
                right[i]=right[i+1]+1;
            }
        }
        for(int i=0;i<n;i++){
            ans[i]=Math.max(left[i],right[i]);
        }
        int total=0;
        for(int i=0;i<n;i++){
            total+=ans[i];
        }
        return total;
    }
}

相关文章:

  • CentOS无法解析部分网站(域名)
  • GraphQL入门之查询片段的使用
  • python 小游戏《2048》字符版非图形界面
  • 论文阅读_参数微调_P-tuning_v2
  • Vue2 引入使用ElementUI详解
  • 基于word2vec 和 fast-pytorch-kmeans 的文本聚类实现,利用GPU加速提高聚类速度
  • cmd常用指令
  • 【Docker】Prometheus 容器部署及应用
  • 软件杯 深度学习 python opencv 实现人脸年龄性别识别
  • Selenium-webdriver_manager判断是否已经下载过驱动(复用缓存驱动)
  • 【C++】了解一下编码
  • FPGA的时钟资源
  • 【C++刷题】优选算法——动态规划第一辑
  • 欧科云链做客Google Cloud与WhalerDAO专题论坛,畅谈Web3数据机遇
  • vue常用指令
  • 008:安装Docker
  • Unity2019.2.x 导出apk 安装到安卓Android12+及以上的系统版本 安装出现-108 安装包似乎无效的解决办法
  • 探秘Nutch:揭秘开源搜索引擎的工作原理与无限应用可能(三)
  • 【vue在主页中点击主页面如何弹出一个指定某个页面的窗口】
  • SQLiteC/C++接口详细介绍之sqlite3类(十五)
  • 美凯龙:董事兼总经理车建兴被立案调查并留置
  • 美国拟向阿联酋和沙特AI公司出口数十万枚芯片
  • 巴基斯坦军方:印度导弹袭击巴首都附近空军基地
  • 巴基斯坦称成功拦截印度导弹,空军所有资产安全
  • 上报集团社长李芸:发挥媒体优势,让中非民心在数字时代更深层互联互通
  • 比特币价格重返10万美元,哪些因素使然?