Subarray Division 2

Sort by

recency

|

118 Discussions

|

  • + 0 comments
    private static int birthday(int n, int[] s, int d, int m) {
        if (n < m) return 0;
        return (int) IntStream.rangeClosed(0, n - m)
                .filter(i -> Arrays.stream(s, i, i + m).sum() == d)
                .count();
    }
    
  • + 0 comments

    My Python Solution: def birhtday(s,d,m): count = 0 for i in range(len(s)-m+1): if (sum(s [ i : m] )== d: count+=1 m +=1 return count

  • + 0 comments

    My rust solution:

    fn birthday(s: &[i32], d: i32, m: i32) -> i32 {
        let m = m as usize;
        (0..s.len())
            .filter(|&i| i + m <= s.len())
            .filter(|&i| s[i..i + m].iter().sum::<i32>() == d)
            .count() as i32
    }
    
  • + 2 comments

    // sliding window method

    def birthday(s, d, m):

    c = 0
    for i in range(len(s)):
        if sum(s[i:i + m]) == d:
            c += 1
    return c
    
  • + 0 comments

    o(n), assertions, performance, c++))

    int birthday(vector<int> s, int d, int m) {
        assert(s.size() > 0 && d > 0 && m > 0);
        int sum = accumulate(s.cbegin(), s.cbegin() + m, 0);
        int r = 0;
        
        for (int i = 0, e = s.size() - m; i < e; ++i)
        {
            if (sum == d)
            {
                ++r;
            }
            
            sum += s[i + m];
            sum -= s[i];
        }
        
        if (sum == d)
        {
            ++r;
        }
        
        return r;
    }