Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tushar-borole/leetcode-javascript
This contain solution of leetcode in javascript
https://github.com/tushar-borole/leetcode-javascript
leetcode
Last synced: about 1 month ago
JSON representation
This contain solution of leetcode in javascript
- Host: GitHub
- URL: https://github.com/tushar-borole/leetcode-javascript
- Owner: tushar-borole
- Created: 2019-04-30T05:40:08.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-10-10T22:25:38.000Z (about 5 years ago)
- Last Synced: 2024-08-02T21:01:49.032Z (4 months ago)
- Topics: leetcode
- Language: JavaScript
- Homepage: https://tushariscoolster.github.io/leetcode-javascript
- Size: 1.98 MB
- Stars: 7
- Watchers: 2
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-leetcode - tushariscoolster/leetcode-javascript
README
# leetcode-javascript
![LogoMakr_1PDRDt_1](LogoMakr_1PDRDt_1.png)
#### This contain solution of leetcode in javascript
| # | Title | Solution | Runtime | Memory | Difficulty | Time Complexity | Space Complexity | Explanation |
|:-----|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------|:-----------------|:---------------------|:-----------|:----------------|:-----------------|:-------------------------------------------------------------------------------|
| 709 | [To Lower Case](https://leetcode.com/problems/to-lower-case/) | [Solution](to_lower_case.js) | 72 ms | 32.1 MB | Easy | | | |
| 1 | [Two Sum](https://leetcode.com/problems/two-sum/) | [two_sum.js](two_sum.js) | 52 ms | 35 MB | Easy | | | |
| 811 | [Subdomain Visit Count](https://leetcode.com/problems/subdomain-visit-count/) | [subdomain_visit_count.js](subdomain_visit_count.js) | 80 ms | 38.6 MB | Easy | | | |
| 746 | [Min Cost Climbing Stairs](https://leetcode.com/problems/min-cost-climbing-stairs/) [Iterative](min_cost_climbing_stairs.js) | | 56 ms | 34.8 MB | Easy | O(N) | | [:link:](https://www.youtube.com/watch?v=wca05n5PZ-c) |
| 1085 | [Sum of Digits in the Minimum Number](https://leetcode.com/problems/sum-of-digits-in-the-minimum-number/) | [Iterative](sum_of_digits_in_the_minimum_number.js) | 56 ms | 34.9 MB | Easy | | | |
| 674 | [Longest Continuous Increasing Subsequence](https://leetcode.com/problems/longest-continuous-increasing-subsequence/) | [Window Sliding Method](longest_continuous_increasing_subsequence.js) | | 35.1 MB | Easy | | | |
| 443 | [String Compression](https://leetcode.com/problems/string-compression/) | [string_compression.js](string_compression.js) | | | Easy | | | |
| 122 | [Best Time to Buy and Sell Stock II](https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/) | [iterative](best_time_to_buy_and_sell_stock_II.js) | 56 ms | 35.4 MB | Easy | O(N) | O(1) | |
| 1122 | [Relative Sort Array](https://leetcode.com/problems/relative-sort-array/) | [Ittrative](relative_sort_array.js) | 52 ms | 34.9 MB | Easy | | | |
| 67 | [Add Binary](https://leetcode.com/problems/add-binary/) | [addBinary.js](addBinary.js) | 72 ms | 35.7 MB | Easy | | | [:link:](https://www.youtube.com/watch?v=6axItxXHouA) |
| 344 | [Reverse String](https://leetcode.com/problems/reverse-string/) | [Recursive](reverse_string.js) | 112 ms | 48.6 MB | Easy | 0(N) | 0(1) | |
| 509 | [Fibonacci Number](https://leetcode.com/problems/fibonacci-number/) | [Solution](fibonacci_number.js) | 76 ms | 34.3 MB | Easy | | | |
| 70 | [Climbing Stairs](https://leetcode.com/problems/climbing-stairs/) | [Recursive](climbing_stairs.js) | 52 ms | 33.9 MB | Easy | 0(N) | O(N) | [:link:](https://www.youtube.com/watch?v=NFJ3m9a1oJQ) |
| 728 | [Self Dividing Numbers](https://leetcode.com/problems/self-dividing-numbers/) | [Solution](self_dividing_numbers.js) | 68 ms | 38 MB | Easy | | | |
| 941 | [Valid Mountain Array](https://leetcode.com/problems/valid-mountain-array/) | [Ittrative](valid_mountain_array.js) | 56 ms | 36.8 MB | Easy | 0(N) | O(1) | [:link:](https://www.youtube.com/watch?v=WWysBX-N2Ak) |
| 905 | [Sort Array By Parity](https://leetcode.com/problems/sort-array-by-parity/) | [Solution](sort_array_by_parity.js) | 84 ms | 37.3 MB | Easy | | | |
| 819 | [Most Common Word](https://leetcode.com/problems/most-common-word/) | [most_common_word.js](most_common_word.js) | 76 ms | 37.8 MB | Easy | | | |
| 104 | [Maximum Depth of Binary Tree](https://leetcode.com/problems/maximum-depth-of-binary-tree/) | [Recursion](maximum_depth_of_binary_tree.js) | 72 ms | 36.9 MB | Easy | O(N) | 0(1) | [:link:](http://bit.ly/2XQnNJI) |
| 657 | [Robot Return to Origin](https://leetcode.com/problems/robot-return-to-origin/) | [Solution](robot_return_to_origin.js) | 80 ms | 41.3 MB | Easy | | | |
| 206 | [Reverse Linked List](https://leetcode.com/problems/reverse-linked-list/) | [Iterative](reverse_linked_list_iterative.js)
[Recursive](reverse_linked_list_recursive.js) | 64 ms
64 ms | 35 MB
35.4 MB | Easy | | | |
| 412 | [Fizz Buzz](https://leetcode.com/problems/fizz-buzz/) | [Solution](fizz_buzz.js) | 72 ms | 37.4 MB | Easy | | | |
| 1002 | [Find Common Characters](https://leetcode.com/problems/find-common-characters/) | [Solution](find_common_characters.js) | 108 ms | 38.1 MB | Easy | | | |
| 876 | [Middle of the Linked List](https://leetcode.com/problems/middle-of-the-linked-list/) | [Solution 1](middle_of_the_linked_list.js)
[Solution 2](middle_of_the_linked_list_2.js) | 48 ms
44ms | 33.9 MB
33.8 MB | Easy | | | |
| 126 | [Single Number](https://leetcode.com/problems/single-number/) | [Solution](single_number.js) | 60 ms | 37.1 MB | Easy | | | |
| 485 | [Max Consecutive Ones](https://leetcode.com/problems/max-consecutive-ones/) | [Solution 1](max_consecutive_ones.js)
[Solution 2](max_consecutive_ones_2.js) | 56 ms | 37.1 MB | Easy | | | |
| 258 | [ Add Digits](https://leetcode.com/problems/add-digits/) | [Solution](add_digits.js) | 76 ms | 36.3 MB | Easy | | | |
| 237 | [Delete Node in a Linked List](https://leetcode.com/problems/delete-node-in-a-linked-list/) | [Solution](delete_node_linked_list.js) | 60 ms | 35.6 MB | Easy | | | |
| 242 | [Valid Anagram](https://leetcode.com/problems/valid-anagram/) | [Solution](valid_anagram.js) | 56 ms | 37.8 MB | Easy | | | |
| 448 | [Find All Numbers Disappeared in an Array](https://leetcode.com/problems/find-all-numbers-disappeared-in-an-array/) | [Solution](find_all_numbers_disappeared_in_an_array.js) | 6576 ms | 45.7 MB | Easy | | | |
| 217 | [Contains Duplicate](https://leetcode.com/problems/contains-duplicate) | [Solution](contains_duplicate.js) | 96 ms | 42.7 MB | Easy | | | |
| 219 | [Contains Duplicate II](https://leetcode.com/problems/contains-duplicate-ii/) | [Solution](contains_duplicate_II.js) | 72 ms | 42.4 MB | Easy | | | |
| 349 | [Intersection of Two Arrays](https://leetcode.com/problems/intersection-of-two-arrays/) | [Solution 1](intersection_of_two_arrays.js)
[Solution 2](intersection_of_two_arrays_solution_2.js) | 56 ms | 35.8 MB | Easy | | | |
| 350 | [Intersection of Two Arrays II](https://leetcode.com/problems/intersection-of-two-arrays-ii/) | [Solution](intersection_of_two_arrays_II.js)
[Solution 2](intersection_of_two_arrays_II_solution2.js) | 84 ms | 38.3 MB | Easy | | | |
| 977 | [Squares of a Sorted Array](https://leetcode.com/problems/squares-of-a-sorted-array/) | [Solution](squares_of_a_sorted_array.js) | 152 ms | 43.5 MB | Easy | | | |
| 599 | [Minimum Index Sum of Two Lists](https://leetcode.com/problems/minimum-index-sum-of-two-lists/) | [Solution](minimum_index_sum_of_two_lists.js) | 108 ms | 43 MB | Easy | | | |
| 26 | [Remove Duplicates from Sorted Array](https://leetcode.com/problems/remove-duplicates-from-sorted-array/) | [Solution](remove_duplicates_from_sorted_array.js) | 76 ms | 37.2 MB | Easy | | | |
| 100 | [Same Tree](https://leetcode.com/problems/same-tree/) | [Solution](same_tree.js) | 52 ms | 33.9 MB | Easy | | | |
| 704 | [Binary Search](https://leetcode.com/problems/binary-search/) | [Iterative](binary_search.js)
[Recursion](binary_search_recursion.js) | | | Easy | | | |
| 700 | [Search in a Binary Search Tree](https://leetcode.com/problems/search-in-a-binary-search-tree/) | [Solution](search_in_a_binary_search_tree.js) | 100ms | 41.7 | Easy | | | |
| 821 | [ Shortest Distance to a Character](https://leetcode.com/problems/shortest-distance-to-a-character/) | [Solution](shortest_distance_to_a_character.js) | 192 ms | 45.5 MB | Easy | | | |
| 561 | [Array Partition I](https://leetcode.com/problems/array-partition-i/) | [Solution](array_partition_I.js) | 116 ms | 39.1MB | Easy | | | |
| 476 | [Number Complement](https://leetcode.com/problems/number-complement/) | [Solution](number_complement.js) | 52ms | 33.9 MB | Easy | | | |
| 617 | [Merge Two Binary Trees](https://leetcode.com/problems/merge-two-binary-trees/) | [Solution](merge_two_binary_trees.js) | 92 ms | 40.4 MB | Easy | | | |
| 268 | [Missing Number](https://leetcode.com/problems/missing-number/) | [Solution](missing_number.js) | 388 ms | 37.1 MB | Easy | | | |
| 1047 | [ Remove All Adjacent Duplicates In String](https://leetcode.com/problems/remove-all-adjacent-duplicates-in-string/) | [Solution](remove_all_adjacent_duplicates_in_string.js) | 480 ms | 39.7 MB | Easy | | | |
| 125 | [Valid Palindrome](https://leetcode.com/problems/valid-palindrome/) | [Solution](valid_palindrome.js) | 76 ms | 41 MB | Easy | | | |
| 896 | [Monotonic Array](https://leetcode.com/problems/monotonic-array/) | [Solution](monotonic_array.js) | 68 ms | 40.5 MB | Easy | | | |
| 653 | [Two Sum IV - Input is a BST](https://leetcode.com/problems/two-sum-iv-input-is-a-bst/) | [Solution](two_sum_IV.js) | 84 ms | 41.5 MB | Easy | | | |
| 589 | [N-ary Tree Preorder Traversal](https://leetcode.com/problems/n-ary-tree-preorder-traversal/) | [Solution](preorder_traversal.js) | 608 ms | 77.1 MB | Easy | | | |
| 965 | [Univalued Binary Tree](https://leetcode.com/problems/univalued-binary-tree/) | [univalued_binary_tree.js](univalued_binary_tree.js) | 52 ms | 34 MB | Easy | | | |
| 35 | [Search Insert Position](https://leetcode.com/problems/search-insert-position/) | [search_insert_position.js](search_insert_position.js) | 52 ms | 34.5 MB | Easy | | | |
| 922 | [Sort Array By Parity II](https://leetcode.com/problems/sort-array-by-parity-ii/) | [sort_array_by_parity_II.js](sort_array_by_parity_II.js) | 100 ms | 41.9 MB | Easy | | | |
| 563 | [Binary Tree Tilt](https://leetcode.com/problems/binary-tree-tilt/) | [binary_tree_tilt.js](binary_tree_tilt.js) | 68 ms | 37.7 MB | Easy | | | |
| 686 | [Repeated String Match](https://leetcode.com/problems/repeated-string-match/) | [repeated_string_match.js](repeated_string_match.js) | 64 ms | 35.9 MB | Easy | | | |
| 429 | [N-ary Tree Level Order Traversal](https://leetcode.com/problems/n-ary-tree-level-order-traversal/) | [n-ary_tree_level_order_traversal.js](n-ary_tree_level_order_traversal.js) | 644 ms | 80.9 MB | Easy | | | |
| 590 | [N-ary Tree Postorder Traversal](https://leetcode.com/problems/n-ary-tree-postorder-traversal/) | [Solution](postorder_traversal.js) | 616 ms | 80.9 MB | Easy | | | |
| 1089 | [Duplicate Zeros](https://leetcode.com/problems/duplicate-zeros/) | [duplicate_zeros.js](duplicate_zeros.js) | 64 ms | 35.7 MB | Easy | | | |
| 783 | [Minimum Distance Between BST Nodes](https://leetcode.com/problems/minimum-distance-between-bst-nodes/) | [minimum_distance_between_bst_nodes.js](minimum_distance_between_bst_nodes.js) | 88 ms | 34.7 MB | Easy | | | |
| 189 | [Rotate Array](https://leetcode.com/problems/rotate-array/) | [rotate_array.js](rotate_array.js) | 92 ms | 35.3 MB | Easy | | | |
| 1013 | [Partition Array Into Three Parts With Equal Sum](https://leetcode.com/problems/partition-array-into-three-parts-with-equal-sum/) | [partition_array_into_three_parts.js](partition_array_into_three_parts.js) | 72 ms | 39.6 MB | Easy | | | |
| 387 | [First Unique Character in a String](https://leetcode.com/problems/first-unique-character-in-a-string/) | [first_unique_character_in_a_string.js](first_unique_character_in_a_string.js) | 124 ms | 39.3 MB | Easy | | | |
| 415 | [Add Strings](https://leetcode.com/problems/add-strings/) | [add_string.js](add_string.js) | 60 ms | 36.5 MB | Easy | 0(N) | O(1) | |
| 167 | [Two Sum II - Input array is sorted](https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/) | [two_sum_II.js](two_sum_II.js) | 64 ms | 35.5 MB | Easy | | | |
| 20 | [Valid Parentheses](https://leetcode.com/problems/valid-parentheses/) | [valid_parentheses.js](valid_parentheses.js) | 52 ms | 33.9 MB | Easy | 0(N) | O(1) | |
| 121 | [Best Time to Buy and Sell Stock](https://leetcode.com/problems/best-time-to-buy-and-sell-stock/) | [best_time_to_buy_and_sell_stock.js](best_time_to_buy_and_sell_stock.js) | 56 ms | 36.5 MB | Easy | 0(N) | O(1) | |
| 680 | [Valid Palindrome II](https://leetcode.com/problems/valid-palindrome-ii/) | [valid_palindrome_II.js](valid_palindrome_II.js) | 72 ms | 43.2 MB | Easy | O(N) | O(1) | |
| 414 | [Third Maximum Number](https://leetcode.com/problems/third-maximum-number/) | [third_maximum_number.js](third_maximum_number.js) | 76 ms | 38 MB | Easy | | | |
| 701 | [Insert into a Binary Search Tree](https://leetcode.com/problems/insert-into-a-binary-search-tree/) | [Solution](insert_into_a_binary_search_tree.js) | 112 ms | 41.9 MB | Medium | | | |
| 94 | [Binary Tree Inorder Traversal](https://leetcode.com/problems/binary-tree-inorder-traversal/) | [Solution](binary_tree_inorder_traversal.js) | 56 ms | 33.7 MB | Medium | | | |
| 1015 | [Smallest Integer Divisible by K](https://leetcode.com/problems/smallest-integer-divisible-by-k/) | [Solution](smallest_integer_divisible.js) | 52 ms | 34.3 MB | Medium | | | |
| 215 | [Kth Largest Element in an Array](https://leetcode.com/problems/kth-largest-element-in-an-array/) | [Solution](largest_element%20_in_an_array.js) | 68 ms | 35.9 MB | Medium | | | |
| 74 | [Search a 2D Matrix](https://leetcode.com/problems/search-a-2d-matrix/) | [Solution](search_a_2d_matrix.js) | 48 ms | 34.5 MB | Medium | | | |
| 540 | [Single Element in a Sorted Array](https://leetcode.com/problems/single-element-in-a-sorted-array/) | [single_element_in_a_sorted_array.js](single_element_in_a_sorted_array.js) | 60 ms | 35.2 MB | Medium | | | |
| 2 | [ Add Two Numbers](https://leetcode.com/problems/add-two-numbers) | [add_two_numbers.js](add_two_numbers.js) | | | Medium | | | |
| 347 | [Top K Frequent Elements](https://leetcode.com/problems/top-k-frequent-elements/) | [top_k_frequent_elements.js](top_k_frequent_elements.js) | 80 ms | 39.1 MB | Medium | | | |
| 39 | [Combination Sum](https://leetcode.com/problems/combination-sum/) | [combination_sum.js](combination_sum.js) | 72 ms | 35.8 MB | Medium | | | |
| 40 | [Combination Sum II](https://leetcode.com/problems/combination-sum-ii/) | [combination_sum_II.js](combination_sum_II.js) | 84 ms | 37.6 MB | Medium | | | |
| 46 | [Permutations](https://leetcode.com/problems/permutations/) | [permutations.js](permutations.js) | 88 ms | 37.6 MB | Medium | | | |
| 80 | [Remove Duplicates from Sorted Array II](https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/) | [remove_duplicates_from_sorted_array_II.js](remove_duplicates_from_sorted_array_II.js) | 64 ms | 35.8 MB | Medium | | | |
| 78 | [Subsets](https://leetcode.com/problems/subsets/) | [subset.js](subset.js) | 60 ms | 35 MB | Medium | | | |
| 151 | [Reverse Words in a String](https://leetcode.com/problems/reverse-words-in-a-string/) | [reverse_words_in_string.js](reverse_words_in_string.js) | 56 ms | 34.6 MB | Medium | | | |
| 647 | [Palindromic Substrings](https://leetcode.com/problems/palindromic-substrings/) | [palindromic_substrings.js](palindromic_substrings.js) | 704 ms | 37.2 MB | Medium | | | |
| 102. | [Binary Tree Level Order Traversal](https://leetcode.com/problems/binary-tree-level-order-traversal/) | [binary_tree_level_order_traversal.js](binary_tree_level_order_traversal.js) | 60 ms | 34.9 MB | Medium | O(N) | | |
| 912 | [Sort an Array](https://leetcode.com/problems/sort-an-array/) | [Solution](sort_an_array.js) | 7176 ms | 38.9 MB | Medium | | | |
| 287 | [ Find the Duplicate Number](https://leetcode.com/problems/find-the-duplicate-number/) | [find_the_duplicate_number.js](find_the_duplicate_number.js) | 84 ms | 36 MB | Medium | O(N) | O(1) | |
| 64 | [Minimum Path Sum](https://leetcode.com/problems/minimum-path-sum/) | [minimum_path_sum.js](minimum_path_sum.js) | 52 ms | 35.5 MB | Medium | o(N2) | O(1) | [:link:](https://www.youtube.com/watch?v=lBRtnuxg-gU) |
| 49 | [Group Anagrams](https://leetcode.com/problems/group-anagrams/) | [group_anagrams.js](group_anagrams.js) | 152 ms | 47.3 MB | Medium | NlogN | | [:link:](https://leetcode.com/problems/group-anagrams/solution/ ) |
| 3 | [Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest-substring-without-repeating-characters/) | [Sliding Window Approach](longest_substring.js) | 84 ms | 38.4 MB | Medium | O(N) | | [:link:](https://www.youtube.com/watch?v=MK-NZ4hN7rs) |
| 238 | [Product of Array Except Self](https://leetcode.com/problems/product-of-array-except-self/) | [product_of_array_except_self.js](product_of_array_except_self.js) | 76 ms | 42.3 MB | Medium | O(N) | O(1) | [:link:](https://leetcode.com/problems/product-of-array-except-self/solution/) |
| 137 | [Single Number II](https://leetcode.com/problems/single-number-ii/) | [Iterative](single_number_II.js) | 64 ms | 37.6 MB | Medium | NlogN | | [:link:](https://www.youtube.com/watch?v=KXjgQWDvQ24) |
| 11 | [Container With Most Water](https://leetcode.com/problems/container-with-most-water/) | [Ratcheting](container_with_most_water.js) | 52 ms | 35.4 MB | Medium | O(N) | O(1) | [:link:](https://www.youtube.com/watch?v=k5fbSqb9sCI&t=138s) |
| 24 | [Swap Nodes in Pairs](https://leetcode.com/problems/swap-nodes-in-pairs/) | [Recursive](swap_nodes_in_pairs.js) | 68 ms | 34 MB | Medium | O(N) | | [:link:](https://www.youtube.com/watch?v=zOovxGmION4) |
| 48 | [Rotate Image](https://leetcode.com/problems/rotate-image/) | [Iterative](rotate_image.js) | 56 ms | 33.7 MB | Medium | O(N) | O(1) | [:link:](https://leetcode.com/problems/rotate-image/solution/) |
| 36 | [Valid Sudoku](https://leetcode.com/problems/valid-sudoku/) | [Itterative](valid_sudoku.js) | 68 ms | 37.7 MB | Medium | O(1) | O(1) | [:link:](https://leetcode.com/problems/valid-sudoku/solution/) |
| 146 | [ LRU Cache](https://leetcode.com/problems/lru-cache/) | [Map](lru_cache.js) | 216 ms | 58.8 MB | Medium | O(1) | O(1) | |
| 152 | [Maximum Product Subarray](https://leetcode.com/problems/maximum-product-subarray/) | [Dynamic Programming](max_product.js) | 60 ms | 35 MB | Medium | O(N) | O(1) | [:link:](https://www.youtube.com/watch?v=-rUBh45rugs) |
| 54 | [Spiral Matrix](https://leetcode.com/problems/spiral-matrix/) | [spiral_matrix.js](spiral_matrix.js) | 56 ms | 34 MB | Medium | | | [:link:](https://www.youtube.com/watch?v=3joo9yAZVh8&t=187s) |
| 394 | [Decode String](https://leetcode.com/problems/decode-string/) | [Decode String](decode_string.js) | 68 ms | 33.7 MB | Medium | | | |
| 340 | [Longest Substring with At Most K Distinct Characters](https://leetcode.com/problems/longest-substring-with-at-most-k-distinct-characters/) | [Sliding Window Approach](k_distinct_characters.js) | 68 ms | 37.1 MB | Hard | NlogN | | [:link:](https://www.youtube.com/watch?v=MK-NZ4hN7rs&t=1936s) |
| 297 | [Serialize and Deserialize Binary Tree](https://leetcode.com/problems/serialize-and-deserialize-binary-tree/) | [DFS Recursion](serialize_and_deserialize_binary_tree.js) | 80 ms | 43.6 MB | Hard | | | [:link:](https://www.youtube.com/watch?v=suj1ro8TIVY) |
| 76 | [Minimum Window Substring](https://leetcode.com/problems/minimum-window-substring/) | [Sliding Window](minimum_window_substring.js) | | | Hard | | | |## Others
| | Title | Solution | Links |
|:--|:---------------|:-----------------------------|:-------------------------------------------------------------------------|
| 1 | Tree | [tree.js](tree.js) | |
| 2 | Factorial | [factorial.js](factorial.js) | |
| 3 | Graph | [graph.js](graph.js) | [:link:](https://www.geeksforgeeks.org/implementation-graph-javascript/) |
| 4 | Priority Queue | | |## Approach
| Name | Explanation |
|:---------------|:---------------------------------------------------|
| Sliding Window | https://www.youtube.com/watch?v=MK-NZ4hN7rs |
| | https://www.youtube.com/watch?v=UEEvolnPA_k&t=962s |