Introducci贸n

1

Arrays y Strings para resolver algoritmos avanzados

2

Arrays y Strings en detalle

Dos Apuntadores

3

Patr贸n de Dos Apuntadores

4

Verifying Alien Dictionary: an谩lisis del problema

5

Soluci贸n de Verifying Alien Dictionary

6

Playground: Verifying Alien Dictionary

7

Programando Verifying Alien Dictionary con JavaScript

8

Merge Two Sorted Lists: an谩lisis del problema

9

Soluci贸n de Merge Two Sorted Lists

10

Playground: Merge Two Sorted Lists

11

Programando Merge Two Sorted Lists con Python

12

Container With Most Water: an谩lisis del problema

13

Soluci贸n de Container With Most Water

14

Playground: Container with Most Water

15

Programando Container With Most Water con Java

16

Reto: Trapping Rain Water

17

Ejercicios recomendados de Dos Apuntadores

18

Ejercicios resueltos de Dos Apuntadores

Ventana Deslizante

19

Patr贸n de Ventana Deslizante

20

Longest Substring Without Repeating Characters: an谩lisis del problema

21

Soluci贸n de Longest Substring Without Repeating Characters

22

Playground: Longest Substring Without Repeating Characters

23

Programando Longest Substring Without Repeating Characters con Python

24

Ejercicios recomendados de Ventana Deslizante

25

Ejercicios resueltos de Ventana Deslizante

B煤squeda Binaria

26

Algoritmo de B煤squeda Binaria

27

Search in Rotated Arrays: an谩lisis del problema

28

Soluci贸n de Search in Rotated Arrays

29

Playground: Search in Rotated Arrays

30

Programando Search in Rotated Arrays

31

Search 2D Array Matrix: an谩lisis del problema

32

Soluci贸n de Search 2D Array Matrix

33

Playground: Search 2D Array Matrix

34

Programando Search 2D Array Matrix

Pr贸ximos pasos

35

Toma el Curso Avanzado de Algoritmos: Estructuras de Datos Lineales

Ejercicios resueltos de Ventana Deslizante

25/35

Lectura

Espero que hayas solucionado o al menos hayas intentado solucionar los retos de la clase anterior. De ser as铆, aqu铆 te comparto la manera en que los solucion茅.
Recuerda que hay muchas formas de resolver un mismo problema, cu茅ntame qu茅 te parecen estas soluciones, tambi茅n revisa y aporta a las soluciones de otros Platzinautas. 馃懆鈥嶐煔馃挌

...

Reg铆strate o inicia sesi贸n para leer el resto del contenido.

Aportes 3

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Embarrada que la soluci贸n del ejercicio 3 no est茅, me hubiera gustado ver como la profe manejaba esa k.

Soluci贸n en go para max consecutive ones

/*
	- Have two pointers start, end = 0
	- Move end to the right
	- Count the amount of 1 (ones)
	- Calc the max length (start - end + 1)
	- Calc the amount of flipped values (length - ones)
	- When the amount of fillped values > k (it means we have flipped k times some 0s)
	start a new loop that move the start pointer foward
	- If the new start value is 1, decrease number of 1s.
	- The inner loop ends, when we are able to flip 0 again; (length - ones > k); then continue with the
	max length calc and moving the right pointer
*/

func maxOneConsecutive(nums []int, k int) int {
	var start, end, max, ones int

	for end <= len(nums)-1 {
		if nums[end] == 1 {
			ones++
		}

		// length - ones = number of flipped 0
		// we continue with the calc until we find a range where
		// we are allow to flip again
		for (end-start+1)-ones > k {
			// We are going to move the left pointer to calc
			// new possible consecutives 1, so we found a one
			// we remove it from the ones liest
			if nums[start] == 1 {
				ones--
			}
			// move the left pointer
			start++
		}
		max = int(math.Max(float64(max), float64(end-start+1)))
		end++
	}
	return max
}