Prova final — Array
Três problemas inéditos (não vistos nas aulas) para testar se você sai desta seção resolvendo qualquer problema do tema: um fácil, um médio e um difícil. Alguns casos de teste são ocultos — como no LeetCode de verdade. Resolva em Python ou JavaScript.
Majority Element
Dado um array nums de tamanho n, retorne o elemento majoritário — o elemento que aparece mais de ⌊n/2⌋ vezes. Pode assumir que ele sempre existe no array.
Exemplo: nums = [2, 2, 1, 1, 1, 2, 2] → resposta 2 (aparece 4 vezes em 7).
Subarray Sum Equals K
Dado um array de inteiros nums (com positivos e negativos) e um inteiro k, retorne quantos subarrays contíguos somam exatamente k.
Exemplo: nums = [1, 1, 1], k = 2 → resposta 2 (os subarrays [1,1] começando nos índices 0 e 1).
Atenção: com números negativos, sliding window não funciona — pense em somas de prefixo.
Trapping Rain Water
Dado um array height representando um mapa de elevação onde a largura de cada barra é 1, calcule quanta água fica presa entre as barras depois de chover.
Exemplo: height = [0,1,0,2,1,0,1,3,2,1,2,1] → resposta 6.
A água acima de cada posição é limitada pela menor das maiores barras à esquerda e à direita.