update 0135.分发糖果:修改错字 和 更正 go 代码markdown语法错误

This commit is contained in:
Yuhao Ju
2022-12-16 21:56:34 +08:00
committed by GitHub
parent d6dba48fcf
commit 6ffe0b568e

View File

@ -65,7 +65,7 @@ for (int i = 1; i < ratings.size(); i++) {
如果 ratings[i] > ratings[i + 1]此时candyVec[i]第i个小孩的糖果数量就有两个选择了一个是candyVec[i + 1] + 1从右边这个加1得到的糖果数量一个是candyVec[i](之前比较右孩子大于左孩子得到的糖果数量)。
那么又要贪心了局部最优取candyVec[i + 1] + 1 和 candyVec[i] 最大的糖果数量保证第i个小孩的糖果数量大于左边的也大于右边的。全局最优:相邻的孩子中,评分高的孩子获得更多的糖果。
那么又要贪心了局部最优取candyVec[i + 1] + 1 和 candyVec[i] 最大的糖果数量保证第i个小孩的糖果数量大于左边的也大于右边的。全局最优:相邻的孩子中,评分高的孩子获得更多的糖果。
局部最优可以推出全局最优。
@ -172,63 +172,44 @@ class Solution:
```
### Go
```golang
```go
func candy(ratings []int) int {
/**先确定一边,再确定另外一边
1.先从左到右当右边的大于左边的就加1
2.再从右到左当左边的大于右边的就再加1
**/
need:=make([]int,len(ratings))
sum:=0
//初始化(每个人至少一个糖果)
for i:=0;i<len(ratings);i++{
need[i]=1
need := make([]int, len(ratings))
sum := 0
// 初始化(每个人至少一个糖果)
for i := 0; i < len(ratings); i++ {
need[i] = 1
}
//1.先从左到右当右边的大于左边的就加1
for i:=0;i<len(ratings)-1;i++{
if ratings[i]<ratings[i+1]{
need[i+1]=need[i]+1
// 1.先从左到右当右边的大于左边的就加1
for i := 0; i < len(ratings) - 1; i++ {
if ratings[i] < ratings[i+1] {
need[i+1] = need[i] + 1
}
}
//2.再从右到左当左边的大于右边的就右边加1但要花费糖果最少所以需要做下判断
for i:=len(ratings)-1;i>0;i--{
if ratings[i-1]>ratings[i]{
need[i-1]=findMax(need[i-1],need[i]+1)
// 2.再从右到左当左边的大于右边的就右边加1但要花费糖果最少所以需要做下判断
for i := len(ratings)-1; i > 0; i-- {
if ratings[i-1] > ratings[i] {
need[i-1] = findMax(need[i-1], need[i]+1)
}
}
//计算总共糖果
for i:=0;i<len(ratings);i++{
sum+=need[i]
for i := 0; i < len(ratings); i++ {
sum += need[i]
}
return sum
}
func findMax(num1 int ,num2 int) int{
if num1>num2{
func findMax(num1 int, num2 int) int {
if num1 > num2 {
return num1
}
return num2
}
```
### Rust
```rust
pub fn candy(ratings: Vec<i32>) -> i32 {
let mut candies = vec![1i32; ratings.len()];
for i in 1..ratings.len() {
if ratings[i - 1] < ratings[i] {
candies[i] = candies[i - 1] + 1;
}
}
for i in (0..ratings.len()-1).rev() {
if ratings[i] > ratings[i + 1] {
candies[i] = candies[i].max(candies[i + 1] + 1);
}
}
candies.iter().sum()
}
```
### Javascript:
```Javascript
var candy = function(ratings) {
@ -255,6 +236,25 @@ var candy = function(ratings) {
```
### Rust
```rust
pub fn candy(ratings: Vec<i32>) -> i32 {
let mut candies = vec![1i32; ratings.len()];
for i in 1..ratings.len() {
if ratings[i - 1] < ratings[i] {
candies[i] = candies[i - 1] + 1;
}
}
for i in (0..ratings.len()-1).rev() {
if ratings[i] > ratings[i + 1] {
candies[i] = candies[i].max(candies[i + 1] + 1);
}
}
candies.iter().sum()
}
```
### C
```c
#define max(a, b) (((a) > (b)) ? (a) : (b))