zoukankan      html  css  js  c++  java
  • [LeetCode] Candy

    There are N children standing in a line. Each child is assigned a rating value.

    You are giving candies to these children subjected to the following requirements:

    • Each child must have at least one candy.
    • Children with a higher rating get more candies than their neighbors.

    What is the minimum candies you must give?

    例子:

    input :      1 1 7 6 5 9 7

    第一次扫描:  1 1 2 1 1 2 1

    第二次扫描:  1 1  3  2  1 2 1

     1 class Solution {
     2 public:
     3     int candy(vector<int> &ratings) {
     4         int res = 0;
     5         int n = ratings.size();
     6         if (n == 0) {
     7             return res;
     8         }
     9         int *t = new int[n];
    10         for (int i = 0; i < n; ++i) {
    11             t[i] = 1;
    12         }
    13         //从左向右扫描  ,保证当前比前一个多
    14         for (int i = 1; i < n; ++i) {
    15             if (ratings[i] > ratings[i-1]) {
    16                 t[i] = t[i-1] + 1;
    17             }
    18         }
    19         //从右向左扫描, 保证当前比后一个多     
    20         for(int i = n-2;i >= 0;i--)
    21         {             
    22             //如果第i个的小孩的权值比i+1个小孩高,但是糖的数目却小或者相等,那么i的糖数目等于i+1的糖数目+1。             
    23             if(ratings[i] > ratings[i+1] && t[i] <= t[i+1])
    24             {                 
    25                 t[i] = t[i+1] + 1;            
    26             }      
    27         }
    28         for (int i = 0; i < n; ++i) {
    29             res += t[i];
    30         }
    31         return res;
    32     }
    33 };
  • 相关阅读:
    云栖大会2020
    云栖大会2020
    云栖大会2020
    《利用知识图提高抽象摘要的事实正确性》
    onkeyup="this.value=this.value.replace(/[^1-9]D*$/,'')"
    javamail发送excel附件
    model.org.orgId
    window.parent.returnValue
    删除了用户的org和role
    window.top.popForm()表单以窗口的形式弹出
  • 原文地址:https://www.cnblogs.com/diegodu/p/3808242.html
Copyright © 2011-2022 走看看