Dada uma matriz inteira nums, retorne verdadeiro se existir um triplo de índices (i, j, k) tal que i
Você pode implementar uma solução que seja executada em complexidade de tempo O(n) e complexidade de espaço O(1)?
Para resolver este problema de forma eficiente, precisamos acompanhar o menor e o segundo menor valor encontrados até o momento. Se encontrarmos um terceiro valor maior que o segundo menor, então encontramos um trio crescente.
A solução de força bruta envolve verificar todos os trigêmeos possíveis para ver se existe algum que satisfaça a condição i
function increasingTripletBruteForce(nums: number[]): boolean { const n = nums.length; for (let i = 0; iAnálise de complexidade de tempo:
A solução de força bruta não é eficiente e não é adequada para tamanhos de entrada grandes.
A solução otimizada envolve iterar pela matriz enquanto mantém duas variáveis, a primeira e a segunda, que representam o menor e o segundo menor valor encontrados até o momento. Se encontrarmos um valor maior que segundo, retornaremos verdadeiro.
function increasingTriplet(nums: number[]): boolean { let first = Infinity; let second = Infinity; for (let num of nums) { if (numAnálise de complexidade de tempo:
console.log(increasingTripletBruteForce([1,2,3,4,5])); // true console.log(increasingTripletBruteForce([5,4,3,2,1])); // false console.log(increasingTripletBruteForce([2,1,5,0,4,6])); // true console.log(increasingTripletBruteForce([1,1,1,1,1])); // false console.log(increasingTripletBruteForce([1,2])); // false console.log(increasingTripletBruteForce([1,2,3])); // true console.log(increasingTripletBruteForce([1,5,0,4,1,3])); // true console.log(increasingTriplet([1,2,3,4,5])); // true console.log(increasingTriplet([5,4,3,2,1])); // false console.log(increasingTriplet([2,1,5,0,4,6])); // true console.log(increasingTriplet([1,1,1,1,1])); // false console.log(increasingTriplet([1,2])); // false console.log(increasingTriplet([1,2,3])); // true console.log(increasingTriplet([1,5,0,4,1,3])); // true
Problemas de subarray:
Técnica de dois ponteiros:
Algoritmos no local:
Ao praticar esses problemas e estratégias, você pode melhorar suas habilidades de resolução de problemas e estar mais bem preparado para vários desafios de codificação.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3