zoukankan      html  css  js  c++  java
  • 【LeetCode从零单排】No.135Candy(双向动态规划)

    1.题目

    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?

    2.代码

    public class Solution {
       	public int candy(int[] ratings){
    		int size=ratings.length;
    		if(size<=1) return size;
    		int[] nums=new int[size];
    		for(int i=0;i<size;i++){
                 nums[i]=1;
    		}
    		for(int j=1;j<size;j++){
    			if(ratings[j]>ratings[j-1]) nums[j]=nums[j-1]+1;
    		}
    		for(int m=size-1;m>0;m--){
    			if(ratings[m-1]>ratings[m]){
    				nums[m-1]=Math.max(nums[m]+1,nums[m-1]);
    			}
    		}
    		int result=0;
    		for(int n=0;n<size;n++){
    			result+=nums[n];
    		}
    		
    		return result;
       	}
    }

    /********************************

    * 本文来自博客  “李博Garvin“

    * 转载请标明出处:http://blog.csdn.net/buptgshengod

    ******************************************/



  • 相关阅读:
    django文件上传
    django验证码
    auth模块---笔记
    css笔记
    django模板系统---2
    django模板系统
    Django中间件
    前端笔记---1
    我的django笔记---1
    DNS服务器的搭建
  • 原文地址:https://www.cnblogs.com/tlnshuju/p/7191337.html
Copyright © 2011-2022 走看看