Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/icherya/coursera-data-structures-algorithms

๐ŸŽ“ Coursera: Data Structures and Algorithms Specialization | JavaScript
https://github.com/icherya/coursera-data-structures-algorithms

algorithms binary-search-tree data-structures data-structures-and-algorithms dynamic-programming graph-algorithms greedy-algorithm hash-algorithm heap heuristics javascript js minimum-spanning-trees priority-queue search-algorithms shortest-paths sorting-algorithms tree-structure

Last synced: about 1 month ago
JSON representation

๐ŸŽ“ Coursera: Data Structures and Algorithms Specialization | JavaScript

Awesome Lists containing this project

README

        

# Coursera | Data Structures and Algorithms Specialization

This repository contains Javascript solutions for [Data Structures and Algorithms Specialization](https://www.coursera.org/specializations/data-structures-algorithms). All program assignments can be found inside the course weeks directory.

## [Algorithmic Toolbox](/1-algorithmic-toolbox/)

### Programming Challenges

- [Sum of Two Digits](/1-algorithmic-toolbox/week1_programming_challenges/1_sum_of_two_digits/APlusB.js)
- [Maximum Pairwise Product](/1-algorithmic-toolbox/week1_programming_challenges/2_maximum_pairwise_product/max_pairwise_product.js)

### Algorithmic Warm-up

- [Fibonacci Number](/1-algorithmic-toolbox/week2_algorithmic_warmup/1_fibonacci_number/fibonacci.js)
- [Last Digit of a Large Fibonacci Number](/1-algorithmic-toolbox/week2_algorithmic_warmup/2_last_digit_of_fibonacci_number/fibonacci_last_digit.js)
- [Greatest Common Divisor](/1-algorithmic-toolbox/week2_algorithmic_warmup/3_greatest_common_divisor/gcd.js)
- [Least Common Multiple](/1-algorithmic-toolbox/week2_algorithmic_warmup/4_least_common_multiple/lcm.js)
- [Fibonacci Number Again](/1-algorithmic-toolbox/week2_algorithmic_warmup/5_fibonacci_number_again/fibonacci_huge.js)
- [Last Digit of the Sum of Fibonacci Numbers](/1-algorithmic-toolbox/week2_algorithmic_warmup/6_last_digit_of_the_sum_of_fibonacci_numbers/fibonacci_sum.js)
- [Last Digit of the Sum of Fibonacci Numbers Again](/1-algorithmic-toolbox/week2_algorithmic_warmup/7_last_digit_of_the_sum_of_fibonacci_numbers_again/fibonacci_partial_sum.js)
- [Last Digit of the Sum of Squares of Fibonacci Numbers](/1-algorithmic-toolbox/week2_algorithmic_warmup/8_last_digit_of_the_sum_of_squares_of_fibonacci_numbers/fibonacci_sum_of_squares.js)

### Greedy Algorithms

- [Money Change](/1-algorithmic-toolbox/week3_greedy_algorithms/1_money_change/change.js)
- [Maximum Value of the Loot](/1-algorithmic-toolbox/week3_greedy_algorithms/2_maximum_value_of_the_loot/fractional_knapsack.js)
- [Car Fueling](/1-algorithmic-toolbox/week3_greedy_algorithms/3_car_fueling/car_fueling.js)
- [Maximum Advertisement Revenue](/1-algorithmic-toolbox/week3_greedy_algorithms/4_maximum_advertisement_revenue/dot_product.js)
- [Collecting Signatures](/1-algorithmic-toolbox/week3_greedy_algorithms/5_collecting_signatures/covering_segments.js)
- [Maximum Number of Prizes](/1-algorithmic-toolbox/week3_greedy_algorithms/6_maximum_number_of_prizes/different_summands.js)
- [Maximum Salary](/1-algorithmic-toolbox/week3_greedy_algorithms/7_maximum_salary/largest_number.js)

### Divide and Conquer

- [Binary Search](/1-algorithmic-toolbox/week4_divide_and_conquer/1_binary_search/binary_search.js)
- [Majority Element](/1-algorithmic-toolbox/week4_divide_and_conquer/2_majority_element/majority_element.js)
- [Improving Quick Sort](/1-algorithmic-toolbox/week4_divide_and_conquer/3_improving_quicksort/sorting.js)
- [Number of Inversions](/1-algorithmic-toolbox/week4_divide_and_conquer/4_number_of_inversions/inversions.js)
- [Organizing a Lottery](/1-algorithmic-toolbox/week4_divide_and_conquer/5_organizing_a_lottery/points_and_segments.js)
- [Closest Points](/1-algorithmic-toolbox/week4_divide_and_conquer/6_closest_points/closest.js)

### Dynamic Programming 1

- [Money Change Again](/1-algorithmic-toolbox/week5_dynamic_programming1/1_money_change_again/change_dp.js)
- [Primitive Calculator](/1-algorithmic-toolbox/week5_dynamic_programming1/2_primitive_calculator/primitive_calculator.js)
- [Edit Distance](/1-algorithmic-toolbox/week5_dynamic_programming1/3_edit_distance/edit_distance.js)
- [Longest Common Subsequence of Two Sequences](/1-algorithmic-toolbox/week5_dynamic_programming1/4_longest_common_subsequence_of_two_sequences/lcs2.js)
- [Longest Common Subsequence of Three Sequences](/1-algorithmic-toolbox/week5_dynamic_programming1/5_longest_common_subsequence_of_three_sequences/lcs3.js)

### Dynamic Programming 2

- [Maximum Amount of Gold](/1-algorithmic-toolbox/week6_dynamic_programming2/1_maximum_amount_of_gold/knapsack.js)
- [Partitioning Souvenirs](/1-algorithmic-toolbox/week6_dynamic_programming2/2_partitioning_souvenirs/partition3.js)
- [Maximum Value of an Arithmetic Expression](/1-algorithmic-toolbox/week6_dynamic_programming2/3_maximum_value_of_an_arithmetic_expression/placing_parentheses.js)

## [Data Structures](/2-data-structures/)

### Basic Data Structures

- [Check brackets in the code](/2-data-structures/week1_basic_data_structures/1_brackets_in_code/check_brackets.js)
- [Tree height](/2-data-structures/week1_basic_data_structures/2_tree_height/tree_height.js)
- [Network packet processing simulation](/2-data-structures/week1_basic_data_structures/3_network_simulation/process_packages.js)
- [Stack with maximum](/2-data-structures/week1_basic_data_structures/4_stack_with_max/stack_with_max.js)
- [Maximum in Sliding Window](/2-data-structures/week1_basic_data_structures/5_max_sliding_window/max_sliding_window.js)

### Priority Queues and Disjoint Sets

- [Make Heap](/2-data-structures/week2_priority_queues_and_disjoint_sets/1_make_heap/build_heap.js)
- [Parallel Processing](/2-data-structures/week2_priority_queues_and_disjoint_sets/2_job_queue/job_queue.js)
- [Merging Tables](/2-data-structures/week2_priority_queues_and_disjoint_sets/3_merging_tables/merging_tables.js)

### Hash Tables

- [Phone Book](/2-data-structures/week3_hash_tables/1_phone_book/phone_book.js)
- [Chaining Simulation](/2-data-structures/week3_hash_tables/2_hash_chains/hash_chains.js)
- [Find Substring](/2-data-structures/week3_hash_tables/3_hash_substring/hash_substring.js)
- [Substring Comparison](/2-data-structures/week3_hash_tables/4_substring_equality/substring_equality.js)
- [Longest Common Substring](/2-data-structures/week3_hash_tables/5_longest_common_substring/common_substring.js)
- [Pattern Matching with Mismatches](/2-data-structures/week3_hash_tables/6_matching_with_mismatches/matching_with_mismatches.js)

### Binary Search Trees

- [Tree Orders](/2-data-structures/week4_binary_search_trees/1_tree_traversals/tree-orders.js)
- [Is it a Binary Search Tree?](/2-data-structures/week4_binary_search_trees/2_is_bst/is_bst.js)
- [Is it a Binary Search Tree? Hard version.](/2-data-structures/week4_binary_search_trees/3_is_bst_advanced/is_bst_hard.js)
- [Set range sum](/2-data-structures/week4_binary_search_trees/4_set_range_sum/set_range_sum.js)
- [Rope string](/2-data-structures/week4_binary_search_trees/5_rope/rope.js)

## [Algorithms on Graphs](3-algorithms-on-graphs)

### Decomposition of Graphs 1

- [Reachability](/3-algorithms-on-graphs/week1_graph_decomposition1/1_finding_exit_from_maze/reachability.js)
- [Connected Components](/3-algorithms-on-graphs/week1_graph_decomposition1/2_adding_exits_to_maze/connected_components.js)

### Decomposition of Graphs 2

- [Acyclicity](/3-algorithms-on-graphs/week2_graph_decomposition2/1_cs_curriculum/acyclicity.js)
- [Topological Sort](/3-algorithms-on-graphs/week2_graph_decomposition2/2_order_of_courses/toposort.js)
- [Strongly connected components](/3-algorithms-on-graphs/week2_graph_decomposition2/3_intersection_reachability/strongly_connected.js)

### Paths in Graphs 1

- [Breadth first search (minimum number of flight segments)](/3-algorithms-on-graphs/week3_paths_in_graphs1/1_flight_segments/bfs.js)
- [Bipartite](/3-algorithms-on-graphs/week3_paths_in_graphs1/2_bipartite/bipartite.js)

### Paths in Graphs 2

- [Dijkstra](/3-algorithms-on-graphs/week4_paths_in_graphs2/1_minimum_flight_cost/dijkstra.js)
- [Negative Cycle](/3-algorithms-on-graphs/week4_paths_in_graphs2/2_detecting_anomalies/negative_cycle.js)
- [Shortest Paths](/3-algorithms-on-graphs/week4_paths_in_graphs2/3_exchanging_money/shortest_paths.js)

### Minimum Spanning Trees

- [Connecting Points](/3-algorithms-on-graphs/week5_spanning_trees/1_connecting_points/connecting_points.js)
- [Clustering](/3-algorithms-on-graphs/week5_spanning_trees/2_clustering/clustering.js)

## [Algorithms on String](/4-algorithms-on-strings/)

### Suffix Trees

- [Construct a Trie from a Collection of Patterns](/4-algorithms-on-strings/week1_suffix_trees/1_trie/trie.js)
- [Implement TrieMatching](/4-algorithms-on-strings/week1_suffix_trees/2_trie_matching/trie_matching.js)
- [Extend TrieMatching](/4-algorithms-on-strings/week1_suffix_trees/3_trie_matching_extended/trie_matching_extended.js)
- [Suffix Tree](/4-algorithms-on-strings/week1_suffix_trees/4_suffix_tree/suffix_tree.js)
- [Shortest Non-Shared Substring](/4-algorithms-on-strings/week1_suffix_trees/5_non_shared_substring/non_shared_substring.js)

### Burrowsโ€“Wheeler Transform and Suffix Arrays

- [Burrows-Wheeler Transform](/4-algorithms-on-strings/week2_bwt_transform_and_suffix_arrays/1_bwt/bwt.js)
- [Reconstruct String from its Burrows-Wheeler Transform](/4-algorithms-on-strings/week2_bwt_transform_and_suffix_arrays/2_bwtinverse/bwtinverse.js)
- [Implement BetterBWMatching](/4-algorithms-on-strings/week2_bwt_transform_and_suffix_arrays/3_bwmatching/bwmatching.js)
- [Construct Suffix Array of a String](/4-algorithms-on-strings/week2_bwt_transform_and_suffix_arrays/4_suffix_array/suffix_array.js)

### Algorithmic Challenges

- [Find all Occurrences of a Pattern in a String](/4-algorithms-on-strings/week3_4_algorithmic_challenges/1_kmp/kmp.js)
- [Construct Suffix Array of a Long String](/4-algorithms-on-strings/week3_4_algorithmic_challenges/2_suffix_array_long/suffix_array_long.js)
- [Pattern Matching with the Suffix Array](/4-algorithms-on-strings/week3_4_algorithmic_challenges/3_suffix_array_matching/suffix_array_matching.js)
- [Construct a Suffix Tree from a Suffix Array](/4-algorithms-on-strings/week3_4_algorithmic_challenges/4_suffix_tree_from_array/suffix_tree_from_array.js)

## [Advanced Algorithms and Complexity](/5-advanced-algorithms-and-complexity/)

### Flows in Networks

- [Evacuating People](/5-advanced-algorithms-and-complexity/week1_flows_in_networks/1_evacuation/evacuation.js)
- [Airline Crews](/5-advanced-algorithms-and-complexity/week1_flows_in_networks/2_airline_crews/airlineCrews.js)
- [Stock Charts](/5-advanced-algorithms-and-complexity/week1_flows_in_networks/3_stock_charts/stockCharts.js)

### Linear Programming

- [Infer Energy Values of Ingredients](/5-advanced-algorithms-and-complexity/week2_linear_programming/1_energy_values/energyValues.js)
- [Optimal Diet Problem](/5-advanced-algorithms-and-complexity/week2_linear_programming/2_diet/diet.js)
- [Online Advertisement Allocation](/5-advanced-algorithms-and-complexity/week2_linear_programming/3_ad_allocation/adAllocation.js)

### NP-completeness

- [Assign Frequencies to the Cells of a GSM Network](/5-advanced-algorithms-and-complexity/week3_np_completeness/1_gsm_network/GSMNetwork.js)
- [Cleaning the Apartment](/5-advanced-algorithms-and-complexity/week3_np_completeness/2_cleaning_apartment/cleaningApartment.js)
- [Advertisement Budget Allocation](/5-advanced-algorithms-and-complexity/week3_np_completeness/3_budget_allocation/budgetAllocation.js)

### Coping with NP-completeness

- [Plan a Fun Party](/5-advanced-algorithms-and-complexity/week4_coping_with_np_completeness/2_plan_party/planParty.js)
- [School Bus](/5-advanced-algorithms-and-complexity/week4_coping_with_np_completeness/3_school_bus/schoolBus.js)