【LeetCode】1700、无法吃午餐的学生数量【简单】

一、题目

题目
题解

二、思路

需要转换思维,看本质。

sandwitches 数组头部的值域为 0 或 1。当值为 x 时,若 students 数组已无喜欢 x 的值时则终止。

因此,可用 s0 表示 students 中喜欢 0 的学生数量;用 s1 表示 students 中喜欢 1 的学生数量。

当 sandwitches[0] 为 x 时,若 sx > 0 时则仍有学生能领走三明治;若 sx == 0 是则终止。

三、题解

func countStudents(students []int, sandwiches []int) int {
    
    
    s1 := 0
    total := 0
    for _, v := range students {
    
    
        total++
        s1 += v
    }
    s0 := total - s1
    for _, v := range sandwiches {
    
    
        if v == 0 && s0 > 0 {
    
    
            s0--
        } else if v == 1 && s1 > 0 {
    
    
            s1--
        } else {
    
    
            break
        }
    }
    return s0+s1
}

猜你喜欢

转载自blog.csdn.net/jiaoyangwm/article/details/127418524