LeetCode solutions

2408. Number of People Aware of a Secret

My accepted Python solution to LeetCode problem 2408, Number of People Aware of a Secret, running in 215ms.

  • Difficulty: Medium
  • Python
  • Runtime 215ms
  • Memory 17.2MB

Read the problem on LeetCode View on GitHub

Python

Accepted on LeetCode — runtime 215ms, memory 17.2MB, accepted 2026-01-02.

python
class Solution:
    def peopleAwareOfSecret(self, n: int, delay: int, forget: int) -> int:
        MOD = 10**9 + 7
        # dp[i] = number of people who learned secret on day i
        dp = [0] * (n + 1)
        dp[1] = 1
        
        for day in range(2, n + 1):
            # People who learned on days [day-forget+1, day-delay] can share
            for prev_day in range(max(1, day - forget + 1), day - delay + 1):
                dp[day] = (dp[day] + dp[prev_day]) % MOD
        
        # Count people who haven't forgotten on day n
        result = 0
        for day in range(max(1, n - forget + 1), n + 1):
            result = (result + dp[day]) % MOD
        
        return result

Source