Sort by

recency

|

3091 Discussions

|

  • + 0 comments

    TypeScript ugly one-liner:

    function birthday(s: number[], d: number, m: number): number {
      return s.flatMap((_, i) => [s.slice(i, m + i)]).filter((arr) => arr.reduce((a, b) => a + b, 0) === d).length;
    }
    
  • + 0 comments
    int birthday(vector<int> s, int d, int m) {
        std::vector<int>::iterator left = s.begin();
        std::vector<int>::iterator right = left + m; // points behind sliding window
        
        int sum = std::accumulate(left, right, 0);
        int numWays = sum == d ? 1 : 0;
        
        while (right != s.end()) {
            sum = sum - *left + *right; // update sum
            left++; right++; // and move the sliding window
            
            if (sum == d)
                numWays++;
        }
        
        return numWays;
    }
    
  • + 1 comment

    O(n): function birthday(s, d, m) { // Write your code here let count = 0; for (let i=0; i 0 ? s[i-1]: 0); if (i == m -1 && s[i] == d) { count += 1 } if (i > m - 1 && s[i] - s[i-m] == d) { count += 1 } } return count; }

  • + 0 comments

    Here is my solution, using JavaScript

    function birthday(s, d, m) {
        // Write your code here
        let count = 0;
        while (s.length >= m){
          let sum = 0;
          // sum terms
          for(let i=0; i<m; i++){
            sum += s[i];
        }
        if(sum===d) count++;    
        s.shift();
        } 
        return count;
    }
    
  • + 0 comments

    //javascript function birthday(s, d, m) { // Write your code here

    let contador = 0;
    

    for (let i = 0; i <= s.length - m; i++) {

    const bloque = s.slice(i, i + m);
    
    const suma = bloque.reduce((acumulador, valorActual) => acumulador + valorActual, 0);
    
    if (suma === d) {
      contador++;
    }
    

    }

    return contador;

    }