algorithms-scala icon indicating copy to clipboard operation
algorithms-scala copied to clipboard

:bulb: Minimal examples of data structures and algorithms in Scala

Scala Data Structures and Algorithms Build Status

Minimal and clean example implementations of data structures and algorithms in Scala.
Forked from keon/algorithms

List of Implementations

Checked implementations are written in scala. If not, those are not converted to scala yet.

  • array
    • [x] CircularCounter
    • [x] Flatten
    • [x] Garage
    • [x] LongestNonRepeat
    • [x] MergeIntervals
    • [x] MissingRanges
    • plus_one
    • [x] RotateArray
    • summary_ranges
    • [x] ThreeSum
    • [x] TwoSum
  • backtrack
    • general_solution.md
    • anagram
    • array_sum_combinations
    • combination_sum
    • expression_add_operators
    • factor_combinations
    • generate_abbreviations
    • generate_parenthesis
    • letter_combination
    • palindrome_partitioning
    • pattern_match
    • permute
    • permute_unique
    • subsets
    • subsets_unique
  • bfs
    • shortest_distance_from_all_buildings
    • word_ladder
  • bit
    • bytes_int_conversion
    • count_ones
    • find_missing_number
    • power_of_two
    • reverse_bits
    • single_number2
    • single_number
    • subsets
    • add_without_operator
  • calculator
    • math_parser
  • dfs
    • all_factors
    • count_islands
    • pacific_atlantic
    • sudoku_solver
    • walls_and_gates
  • dp
    • buy_sell_stock
    • climbing_stairs
    • combination_sum
    • house_robber
    • longest_increasing
    • max_product_subarray
    • max_subarray
    • num_decodings
    • regex_matching
    • word_break
  • graph
    • clone_graph
    • find_path
    • graph
    • traversal
  • heap
    • merge_sorted_k_lists
    • skyline
    • sliding_window_max
  • linkedlist
    • add_two_numbers
    • copy_random_pointer
    • delete_node
    • first_cyclic_node
    • is_cyclic
    • is_palindrome
    • kth_to_last
    • linkedlist
    • remove_duplicates
    • reverse
    • rotate_list
    • swap_in_pairs
  • map
    • hashtable
    • longest_common_subsequence
    • randomized_set
    • valid_sudoku
  • math
    • extended_gcd
    • gcd/lcm
    • prime_test
    • primes_sieve_of_eratosthenes
    • generate_strobogrammtic
    • is_strobogrammatic
    • nth_digit
    • rabin_miller
    • rsa
    • sqrt_precision_factor
    • pythagoras
  • matrix
    • matrix_rotation.txt
    • bomb_enemy
    • rotate_image
    • sparse_dot_vector
    • sparse_mul
    • spiral_traversal
    • count_paths
  • queue
    • max_sliding_window
    • moving_average
    • queue
    • reconstruct_queue
    • zigzagiterator
  • search
    • binary_search
    • count_elem
    • first_occurance
    • last_occurance
  • set
    • randomized_set
  • sort
    • insertion_sort
    • meeting_rooms
    • merge_sort
    • quick_sort
    • selection_sort
    • sort_colors
    • topsort
    • wiggle_sort
    • counting_sort
  • stack
    • longest_abs_path
    • simplify_path
    • stack
    • valid_parenthesis
  • string
    • add_binary
    • breaking_bad
    • decode_string
    • encode_decode
    • group_anagrams
    • int_to_roman
    • is_palindrome
    • license_number
    • make_sentence
    • multiply_strings
    • one_edit_distance
    • rabin_karp
    • reverse_string
    • reverse_vowel
    • reverse_words
    • roman_to_int
    • word_squares
  • tree
    • segment-tree
      • segment_tree
    • binary_tree_paths
    • bintree2list
    • bst
      • array2bst
      • bst_closest_value
      • BSTIterator
      • delete_node
      • is_bst
      • kth_smallest
      • lowest_common_ancestor
      • predecessor
      • serialize_deserialize
      • successor
      • unique_bst
    • deepest_left
    • invert_tree
    • is_balanced
    • is_subtree
    • is_symmetric
    • longest_consecutive
    • lowest_common_ancestor
    • max_height
    • max_path_sum
    • min_height
    • path_sum2
    • path_sum
    • pretty_print
    • same_tree
    • traversal
      • inorder
      • level_order
      • zigzag
    • tree
    • trie
      • add_and_search
      • trie
  • union-find
    • count_islands

List of Designs

  • design
    • alarm_system
    • all_o_one_ds
    • excel_table
    • LRUcache
    • nearby_drivers
    • ride_sharing
    • task_runner
    • twitter_feeds

How to contribute

Please read CONTRIBUTING.md