zoukankan      html  css  js  c++  java
  • [LeetCode OJ] 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?

     1 class Solution {
     2 public:
     3     int candy(vector<int> &ratings) {
     4         vector<int> candy_number(ratings.size(), 1);
     5         //不用迭代器,改用下标索引实现,这样代码看起来更加简洁
     6         for(int i=1; i<ratings.size(); ++i)
     7         {
     8            //保障当右边的rating比左边的高时,则右边分得的糖果比左边多
     9             if( ratings[i] > ratings[i-1])      //eg:输入[4 2 3 4 1],最少的分法是[2 1 2 3 1],分发9个糖果
    10                 candy_number[i] = (candy_number[i] > candy_number[i-1]+1) ? candy_number[i] : candy_number[i-1]+1;
    11         }
    12         
    13 
    14         for(int i=ratings.size()-2; i>=0; --i)   
    15         {
    16             //保障当左边的rating比右边的高时,则左边分得的糖果比右边多
    17             if( ratings[i] > ratings[i+1])
    18                 candy_number[i] = (candy_number[i] > candy_number[i+1]+1) ? candy_number[i] : candy_number[i+1]+1;
    19         }
    20 
    21         int total=0;
    22         for(int i=0; i!=ratings.size(); ++i)
    23             total = total + candy_number[i];
    24 
    25         return total;
    26     }
    27 };
  • 相关阅读:
    SQL 笔记汇总
    SQL 备份数据 脚本 -添加到作业 步骤里面 可删除历史天文件
    SQL 事物
    MS-SQL2005 执行DOS命令
    笔记 hosts文件修改 网站发布二级目录 vs2008,vs2010 css验证
    自定义日期控件
    jQuery CSS3 照片墙
    CSS3 照片墙
    jquery.cookie.js
    CSS jQuery 图片全屏切换
  • 原文地址:https://www.cnblogs.com/Marrybe/p/3778840.html
Copyright © 2011-2022 走看看