孩子分糖 leecode OJ

2021-06-18 15:01:37 字數 938 閱讀 7038

/*

* 原問題:n個孩子站成一排,每個人分給乙個權重。按照如下的規則分配糖果: 每個孩子至少有乙個糖果;所分配權重較高的孩子,

* * 分析:每個孩子相對他左右鄰居的權重,只有4種確定情形:左低右高,左高右高,左高右低,

* 左低右低(若權重相等則分配數量相等的糖果即可)。對左低右高的情形,當前權重為他的左鄰權重;

* 左高右高則當前權重為1;左高右低當前權重為他的右鄰權重(遞迴處理),左低右低當前權重為左右鄰的較大值(動態規劃處理)

* 附件為在leetcode上通過的測試

* 通過列印value()的呼叫次數可以知道時間複雜度是o(n)

一道關於孩子分糖的問題!!迴圈鍊錶實現

include include typedef struct cnode cylist define size of node sizeof struct cnode void init clist cylist list void create clist cylist list void dis...

LeetCode練習《七》 分糖

這道題目起名為分糖不知道合適不合適,distribute candies應該是這個意思吧.如下 given an integer array with even length,where different numbers in this array represent different kind...

ZJUT1551 分糖 01揹包

這是個01揹包問題。把總糖果和除以2得出v,相當於揹包的容量。然後從所有數中挑選出最接近v的值,即為要求的乙個解,總和減v則得到另乙個解。本來看這道題沒什麼思路,想到可能是01揹包,但是不敢確定。碰巧瀏覽乙個牛人部落格的時候看到一道類似的,說可以這樣做,便試了一下,果真可以。不過時間上沒有優化。以下...