{"id":18442180,"url":"https://github.com/icherya/coursera-data-structures-algorithms","last_synced_at":"2025-04-14T18:26:44.510Z","repository":{"id":125500843,"uuid":"309988485","full_name":"iCherya/coursera-data-structures-algorithms","owner":"iCherya","description":"🎓 Coursera: Data Structures and Algorithms Specialization | JavaScript ","archived":false,"fork":false,"pushed_at":"2021-03-15T17:54:23.000Z","size":14872,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-16T11:29:12.019Z","etag":null,"topics":["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"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iCherya.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-04T11:54:39.000Z","updated_at":"2024-08-22T09:59:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"b4651083-ded3-4d3c-801e-ae58e93e2d02","html_url":"https://github.com/iCherya/coursera-data-structures-algorithms","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iCherya%2Fcoursera-data-structures-algorithms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iCherya%2Fcoursera-data-structures-algorithms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iCherya%2Fcoursera-data-structures-algorithms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iCherya%2Fcoursera-data-structures-algorithms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iCherya","download_url":"https://codeload.github.com/iCherya/coursera-data-structures-algorithms/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248935289,"owners_count":21185811,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["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"],"created_at":"2024-11-06T06:41:00.554Z","updated_at":"2025-04-14T18:26:44.473Z","avatar_url":"https://github.com/iCherya.png","language":"JavaScript","readme":"# Coursera | Data Structures and Algorithms Specialization\n\nThis 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.\n\n## [Algorithmic Toolbox](/1-algorithmic-toolbox/)\n\n### Programming Challenges\n\n-   [Sum of Two Digits](/1-algorithmic-toolbox/week1_programming_challenges/1_sum_of_two_digits/APlusB.js)\n-   [Maximum Pairwise Product](/1-algorithmic-toolbox/week1_programming_challenges/2_maximum_pairwise_product/max_pairwise_product.js)\n\n### Algorithmic Warm-up\n\n-   [Fibonacci Number](/1-algorithmic-toolbox/week2_algorithmic_warmup/1_fibonacci_number/fibonacci.js)\n-   [Last Digit of a Large Fibonacci Number](/1-algorithmic-toolbox/week2_algorithmic_warmup/2_last_digit_of_fibonacci_number/fibonacci_last_digit.js)\n-   [Greatest Common Divisor](/1-algorithmic-toolbox/week2_algorithmic_warmup/3_greatest_common_divisor/gcd.js)\n-   [Least Common Multiple](/1-algorithmic-toolbox/week2_algorithmic_warmup/4_least_common_multiple/lcm.js)\n-   [Fibonacci Number Again](/1-algorithmic-toolbox/week2_algorithmic_warmup/5_fibonacci_number_again/fibonacci_huge.js)\n-   [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)\n-   [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)\n-   [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)\n\n### Greedy Algorithms\n\n-   [Money Change](/1-algorithmic-toolbox/week3_greedy_algorithms/1_money_change/change.js)\n-   [Maximum Value of the Loot](/1-algorithmic-toolbox/week3_greedy_algorithms/2_maximum_value_of_the_loot/fractional_knapsack.js)\n-   [Car Fueling](/1-algorithmic-toolbox/week3_greedy_algorithms/3_car_fueling/car_fueling.js)\n-   [Maximum Advertisement Revenue](/1-algorithmic-toolbox/week3_greedy_algorithms/4_maximum_advertisement_revenue/dot_product.js)\n-   [Collecting Signatures](/1-algorithmic-toolbox/week3_greedy_algorithms/5_collecting_signatures/covering_segments.js)\n-   [Maximum Number of Prizes](/1-algorithmic-toolbox/week3_greedy_algorithms/6_maximum_number_of_prizes/different_summands.js)\n-   [Maximum Salary](/1-algorithmic-toolbox/week3_greedy_algorithms/7_maximum_salary/largest_number.js)\n\n### Divide and Conquer\n\n-   [Binary Search](/1-algorithmic-toolbox/week4_divide_and_conquer/1_binary_search/binary_search.js)\n-   [Majority Element](/1-algorithmic-toolbox/week4_divide_and_conquer/2_majority_element/majority_element.js)\n-   [Improving Quick Sort](/1-algorithmic-toolbox/week4_divide_and_conquer/3_improving_quicksort/sorting.js)\n-   [Number of Inversions](/1-algorithmic-toolbox/week4_divide_and_conquer/4_number_of_inversions/inversions.js)\n-   [Organizing a Lottery](/1-algorithmic-toolbox/week4_divide_and_conquer/5_organizing_a_lottery/points_and_segments.js)\n-   [Closest Points](/1-algorithmic-toolbox/week4_divide_and_conquer/6_closest_points/closest.js)\n\n### Dynamic Programming 1\n\n-   [Money Change Again](/1-algorithmic-toolbox/week5_dynamic_programming1/1_money_change_again/change_dp.js)\n-   [Primitive Calculator](/1-algorithmic-toolbox/week5_dynamic_programming1/2_primitive_calculator/primitive_calculator.js)\n-   [Edit Distance](/1-algorithmic-toolbox/week5_dynamic_programming1/3_edit_distance/edit_distance.js)\n-   [Longest Common Subsequence of Two Sequences](/1-algorithmic-toolbox/week5_dynamic_programming1/4_longest_common_subsequence_of_two_sequences/lcs2.js)\n-   [Longest Common Subsequence of Three Sequences](/1-algorithmic-toolbox/week5_dynamic_programming1/5_longest_common_subsequence_of_three_sequences/lcs3.js)\n\n### Dynamic Programming 2\n\n-   [Maximum Amount of Gold](/1-algorithmic-toolbox/week6_dynamic_programming2/1_maximum_amount_of_gold/knapsack.js)\n-   [Partitioning Souvenirs](/1-algorithmic-toolbox/week6_dynamic_programming2/2_partitioning_souvenirs/partition3.js)\n-   [Maximum Value of an Arithmetic Expression](/1-algorithmic-toolbox/week6_dynamic_programming2/3_maximum_value_of_an_arithmetic_expression/placing_parentheses.js)\n\n## [Data Structures](/2-data-structures/)\n\n### Basic Data Structures\n\n-   [Check brackets in the code](/2-data-structures/week1_basic_data_structures/1_brackets_in_code/check_brackets.js)\n-   [Tree height](/2-data-structures/week1_basic_data_structures/2_tree_height/tree_height.js)\n-   [Network packet processing simulation](/2-data-structures/week1_basic_data_structures/3_network_simulation/process_packages.js)\n-   [Stack with maximum](/2-data-structures/week1_basic_data_structures/4_stack_with_max/stack_with_max.js)\n-   [Maximum in Sliding Window](/2-data-structures/week1_basic_data_structures/5_max_sliding_window/max_sliding_window.js)\n\n### Priority Queues and Disjoint Sets\n\n-   [Make Heap](/2-data-structures/week2_priority_queues_and_disjoint_sets/1_make_heap/build_heap.js)\n-   [Parallel Processing](/2-data-structures/week2_priority_queues_and_disjoint_sets/2_job_queue/job_queue.js)\n-   [Merging Tables](/2-data-structures/week2_priority_queues_and_disjoint_sets/3_merging_tables/merging_tables.js)\n\n### Hash Tables\n\n-   [Phone Book](/2-data-structures/week3_hash_tables/1_phone_book/phone_book.js)\n-   [Chaining Simulation](/2-data-structures/week3_hash_tables/2_hash_chains/hash_chains.js)\n-   [Find Substring](/2-data-structures/week3_hash_tables/3_hash_substring/hash_substring.js)\n-   [Substring Comparison](/2-data-structures/week3_hash_tables/4_substring_equality/substring_equality.js)\n-   [Longest Common Substring](/2-data-structures/week3_hash_tables/5_longest_common_substring/common_substring.js)\n-   [Pattern Matching with Mismatches](/2-data-structures/week3_hash_tables/6_matching_with_mismatches/matching_with_mismatches.js)\n\n### Binary Search Trees\n\n-   [Tree Orders](/2-data-structures/week4_binary_search_trees/1_tree_traversals/tree-orders.js)\n-   [Is it a Binary Search Tree?](/2-data-structures/week4_binary_search_trees/2_is_bst/is_bst.js)\n-   [Is it a Binary Search Tree? Hard version.](/2-data-structures/week4_binary_search_trees/3_is_bst_advanced/is_bst_hard.js)\n-   [Set range sum](/2-data-structures/week4_binary_search_trees/4_set_range_sum/set_range_sum.js)\n-   [Rope string](/2-data-structures/week4_binary_search_trees/5_rope/rope.js)\n\n## [Algorithms on Graphs](3-algorithms-on-graphs)\n\n### Decomposition of Graphs 1\n\n-   [Reachability](/3-algorithms-on-graphs/week1_graph_decomposition1/1_finding_exit_from_maze/reachability.js)\n-   [Connected Components](/3-algorithms-on-graphs/week1_graph_decomposition1/2_adding_exits_to_maze/connected_components.js)\n\n### Decomposition of Graphs 2\n\n-   [Acyclicity](/3-algorithms-on-graphs/week2_graph_decomposition2/1_cs_curriculum/acyclicity.js)\n-   [Topological Sort](/3-algorithms-on-graphs/week2_graph_decomposition2/2_order_of_courses/toposort.js)\n-   [Strongly connected components](/3-algorithms-on-graphs/week2_graph_decomposition2/3_intersection_reachability/strongly_connected.js)\n\n### Paths in Graphs 1\n\n-   [Breadth first search (minimum number of flight segments)](/3-algorithms-on-graphs/week3_paths_in_graphs1/1_flight_segments/bfs.js)\n-   [Bipartite](/3-algorithms-on-graphs/week3_paths_in_graphs1/2_bipartite/bipartite.js)\n\n### Paths in Graphs 2\n\n-   [Dijkstra](/3-algorithms-on-graphs/week4_paths_in_graphs2/1_minimum_flight_cost/dijkstra.js)\n-   [Negative Cycle](/3-algorithms-on-graphs/week4_paths_in_graphs2/2_detecting_anomalies/negative_cycle.js)\n-   [Shortest Paths](/3-algorithms-on-graphs/week4_paths_in_graphs2/3_exchanging_money/shortest_paths.js)\n\n### Minimum Spanning Trees\n\n-   [Connecting Points](/3-algorithms-on-graphs/week5_spanning_trees/1_connecting_points/connecting_points.js)\n-   [Clustering](/3-algorithms-on-graphs/week5_spanning_trees/2_clustering/clustering.js)\n\n## [Algorithms on String](/4-algorithms-on-strings/)\n\n### Suffix Trees\n\n-   [Construct a Trie from a Collection of Patterns](/4-algorithms-on-strings/week1_suffix_trees/1_trie/trie.js)\n-   [Implement TrieMatching](/4-algorithms-on-strings/week1_suffix_trees/2_trie_matching/trie_matching.js)\n-   [Extend TrieMatching](/4-algorithms-on-strings/week1_suffix_trees/3_trie_matching_extended/trie_matching_extended.js)\n-   [Suffix Tree](/4-algorithms-on-strings/week1_suffix_trees/4_suffix_tree/suffix_tree.js)\n-   [Shortest Non-Shared Substring](/4-algorithms-on-strings/week1_suffix_trees/5_non_shared_substring/non_shared_substring.js)\n\n### Burrows–Wheeler Transform and Suffix Arrays\n\n-   [Burrows-Wheeler Transform](/4-algorithms-on-strings/week2_bwt_transform_and_suffix_arrays/1_bwt/bwt.js)\n-   [Reconstruct String from its Burrows-Wheeler Transform](/4-algorithms-on-strings/week2_bwt_transform_and_suffix_arrays/2_bwtinverse/bwtinverse.js)\n-   [Implement BetterBWMatching](/4-algorithms-on-strings/week2_bwt_transform_and_suffix_arrays/3_bwmatching/bwmatching.js)\n-   [Construct Suffix Array of a String](/4-algorithms-on-strings/week2_bwt_transform_and_suffix_arrays/4_suffix_array/suffix_array.js)\n\n### Algorithmic Challenges\n\n-   [Find all Occurrences of a Pattern in a String](/4-algorithms-on-strings/week3_4_algorithmic_challenges/1_kmp/kmp.js)\n-   [Construct Suffix Array of a Long String](/4-algorithms-on-strings/week3_4_algorithmic_challenges/2_suffix_array_long/suffix_array_long.js)\n-   [Pattern Matching with the Suffix Array](/4-algorithms-on-strings/week3_4_algorithmic_challenges/3_suffix_array_matching/suffix_array_matching.js)\n-   [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)\n\n## [Advanced Algorithms and Complexity](/5-advanced-algorithms-and-complexity/)\n\n### Flows in Networks\n\n-   [Evacuating People](/5-advanced-algorithms-and-complexity/week1_flows_in_networks/1_evacuation/evacuation.js)\n-   [Airline Crews](/5-advanced-algorithms-and-complexity/week1_flows_in_networks/2_airline_crews/airlineCrews.js)\n-   [Stock Charts](/5-advanced-algorithms-and-complexity/week1_flows_in_networks/3_stock_charts/stockCharts.js)\n\n### Linear Programming\n\n-   [Infer Energy Values of Ingredients](/5-advanced-algorithms-and-complexity/week2_linear_programming/1_energy_values/energyValues.js)\n-   [Optimal Diet Problem](/5-advanced-algorithms-and-complexity/week2_linear_programming/2_diet/diet.js)\n-   [Online Advertisement Allocation](/5-advanced-algorithms-and-complexity/week2_linear_programming/3_ad_allocation/adAllocation.js)\n\n### NP-completeness\n\n-   [Assign Frequencies to the Cells of a GSM Network](/5-advanced-algorithms-and-complexity/week3_np_completeness/1_gsm_network/GSMNetwork.js)\n-   [Cleaning the Apartment](/5-advanced-algorithms-and-complexity/week3_np_completeness/2_cleaning_apartment/cleaningApartment.js)\n-   [Advertisement Budget Allocation](/5-advanced-algorithms-and-complexity/week3_np_completeness/3_budget_allocation/budgetAllocation.js)\n\n### Coping with NP-completeness\n\n-   [Plan a Fun Party](/5-advanced-algorithms-and-complexity/week4_coping_with_np_completeness/2_plan_party/planParty.js)\n-   [School Bus](/5-advanced-algorithms-and-complexity/week4_coping_with_np_completeness/3_school_bus/schoolBus.js)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficherya%2Fcoursera-data-structures-algorithms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ficherya%2Fcoursera-data-structures-algorithms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficherya%2Fcoursera-data-structures-algorithms/lists"}