Merge pull request #1619 from zhicheng-lee/zhicheng-lee-patch-4

更新 0135.分发糖果.md Java代码
This commit is contained in:
程序员Carl
2022-09-05 09:18:01 +08:00
committed by GitHub

View File

@ -135,25 +135,22 @@ class Solution {
2、起点下标 ratings.length - 2 从右往左, 只要左边 比 右边 大,此时 左边的糖果应该 取本身的糖果数(符合比它左边大) 和 右边糖果数 + 1 二者的最大值,这样才符合 它比它左边的大,也比它右边大 2、起点下标 ratings.length - 2 从右往左, 只要左边 比 右边 大,此时 左边的糖果应该 取本身的糖果数(符合比它左边大) 和 右边糖果数 + 1 二者的最大值,这样才符合 它比它左边的大,也比它右边大
*/ */
public int candy(int[] ratings) { public int candy(int[] ratings) {
int[] candyVec = new int[ratings.length]; int len = ratings.length;
int[] candyVec = new int[len];
candyVec[0] = 1; candyVec[0] = 1;
for (int i = 1; i < ratings.length; i++) { for (int i = 1; i < len; i++) {
if (ratings[i] > ratings[i - 1]) { candyVec[i] = (ratings[i] > ratings[i - 1]) ? candyVec[i - 1] + 1 : 1;
candyVec[i] = candyVec[i - 1] + 1;
} else {
candyVec[i] = 1;
}
} }
for (int i = ratings.length - 2; i >= 0; i--) { for (int i = len - 2; i >= 0; i--) {
if (ratings[i] > ratings[i + 1]) { if (ratings[i] > ratings[i + 1]) {
candyVec[i] = Math.max(candyVec[i], candyVec[i + 1] + 1); candyVec[i] = Math.max(candyVec[i], candyVec[i + 1] + 1);
} }
} }
int ans = 0; int ans = 0;
for (int s : candyVec) { for (int num : candyVec) {
ans += s; ans += num;
} }
return ans; return ans;
} }