diff --git a/src/my_project/interviews/amazon_high_frequency_23/round_7/merge_intervals.py b/src/my_project/interviews/amazon_high_frequency_23/round_7/merge_intervals.py new file mode 100644 index 00000000..af9c43e1 --- /dev/null +++ b/src/my_project/interviews/amazon_high_frequency_23/round_7/merge_intervals.py @@ -0,0 +1,17 @@ +from typing import List, Union, Collection, Mapping, Optional +from abc import ABC, abstractmethod + +class Solution: + def merge(self, intervals: List[List[int]]) -> List[List[int]]: + + list_answer = list() + + for i in sorted(intervals, key=lambda i: i[0]): + + if list_answer and i[0] <= list_answer[-1][-1]: + list_answer[-1][-1] = max(i[1], list_answer[-1][-1]) + else: + list_answer.append(i) + + return list_answer + diff --git a/src/my_project/interviews/google_top_exercises/round_1/28_alien_dictionary.py b/src/my_project/interviews/google_top_exercises/round_1/28_alien_dictionary.py index bee6c0f2..de5ba86d 100644 --- a/src/my_project/interviews/google_top_exercises/round_1/28_alien_dictionary.py +++ b/src/my_project/interviews/google_top_exercises/round_1/28_alien_dictionary.py @@ -57,11 +57,11 @@ def alienOrder_DFS(self, words: List[str]) -> str: adj = defaultdict(set) letters = {c for word in words for c in word} - print(list(zip(words, words[1:]))) + print('debug 1',list(zip(words, words[1:]))) for first, second in zip(words, words[1:]): for c1, c2 in zip(first, second): - print(list(zip(first,second))) - print(c1,c2) + print('debug 2', list(zip(first,second))) + print('debug 3',c1,c2) if c1 != c2: adj[c1].add(c2) break