分发糖果问题分析

  1. 分发糖果 (https://leetcode-cn.com/problems/candy/)

目标:糖果数组
约束条件:每个数组元素大于等于1,相邻元素大的糖果要更多,总糖果数最小,总糖果数最小,那么两个同学之间差值最小就可以保证。
迭代:从第一个元素开始
第一个元素大于第二个元素:那么第一个元素需要比第二个元素多1,但是不能确定第二个元素是多少
第一个元素小于第二个元素:不用操作。

假设共有n个学生
那么共有n-1对关系。
分别是0和1之间,1和2之间…n-2和n-1之间。
每对关系共有两种可能,<关系和>关系。

先让糖果数满足所有<关系时,只会增加后迭代的元素不会破坏已经遍历完元素之间的关系。(迭代顺序从小到大)
再让糖果满足>顺序时,只会增加后迭代到的元素不会破坏已经遍历完元素之间的关系。(迭代顺序从大到小)

通过思考极端情况进行考虑问题:

1.分数全部递增。从第一个往后看,不断累加。
2.分数全部递减。从最后一个往前看,不断累加。

任何的情况都可以分成无数个极端情况进行处理,剩下就是考虑交界处的处理方法了。

你可能感兴趣的:(分发糖果问题分析)