Skip to content

Repository files navigation

EPI Judge

Introduction

EPI Judge consists of the following:

  • Stub programs for each problem in our book in Python, Java, and C++
  • Test-cases that cover common corner-case and performance bugs
  • A framework for running these tests on your implementation on your machine

Installation

Here's how to download the judge:

$ git clone https://github.com/adnanaziz/EPIJudge.git

If you do not have git, here's a good tutorial on installing git itself.

Running the judge using IDEs

Check out these one minute videos to see how easy it is to get started with the judge.

Python

PyCharm, Eclipse, NetBeans

Java

IntelliJ IDEA, Eclipse

C++

CLion, Visual Studio 2017

Running the judge from the command line

Python

$ python3 <program_name>.py

Java

Use the Makefile.

Compile and run a specific program:

$ make <program_name> 

Example:

$ make Anagrams

Compile and run the last program that you edited:

$ make

C++

You can manually compile and run all programs by directly invoking GCC and Clang.

$ g++ -pthread -std=c++14 -O3 -o anagrams anagrams.cc

You can also use the provided Makefile: make <program_name>. You can also use CMake with the provided CMakeLists.txt file.

$ make 

The default Makefile target is the last edited file.

$ make anagrams

FAQ

  • How can I contact the authors?

Please feel free to send us questions and feedback - adnan.aziz@gmail.com and tsung.hsien.lee@gmail.com

  • Help, my EPIJudge is not working, what should I do?

If you do have issues, e.g., with install or with buggy tests, feel free to reach out to us via email. Please be as detailed as you can: the ideal is if you can upload a screencast video of the issue to youtube; failing that, please upload screenshots. The more detailed the description of the problem and your environment (OS, language version, IDE and version), the easier it’ll be for us to help you.

  • I'm new to programming, and don't have any kind of development environment, what should I do?

The IntelliJ Integrated Development environments described above are best-in-class, and have free versions that will work fine for the EPI Judge. They do not include the compilers. You can get the Java development environment from Oracle, and the Python development environment from Python.org. For C++, you have multiple options. The simplest is to install VisualStudio, which includes both the IDE and the compiler. Google is a good resource for installation help.

  • What compilers are supported for judge?

    • C++
      • Linux
        • GCC 5.4.1
        • Clang 4.0
      • OS X
        • Apple LLVM Clang 9.0.0
      • Windows
        • Visual Studio 2017 15.7.0 Preview 6
          • Release version of VS2017 contains a bug that makes it impossible to compile judge programs
        • MinGW GCC 5.4.0
        • LXSS (Windows Subsystem for Linux) GCC 5.4.0
    • Java
      • Java 9
    • Python
      • Python 3.6
  • What compilers are supported for solutions?

    • C++
      • Linux
        • GCC 7.0.0
        • Clang 5.0
      • OS X
        • Apple LLVM Clang 9.0.0
      • Windows
        • Visual Studio 2017 15.7.0 Preview 6
          • Release version of VS2017 contains a bug that makes it impossible to compile judge programs
        • MinGW GCC 7.2.0
        • LXSS (Windows Subsystem for Linux) GCC 7.2.0
      • Java
        • Java 9
      • Python
        • Python 3.6

Let us know if you managed to compile with an older version.

  • What does the UI look like?

Take a look at this screenshot.

  • How can I understand the test framework better?

The judge harness is fairly complex (but does not use nonstandard language features or libraries). You are welcome to study it, but we’d advise you against making changes to it (since it will lead to nasty merge conflicts when you update).

  • How do I import the C++ project?

If you want to import the project into your favourite IDE, you probably need to create IDE project with CMake (no need to do it for CLion, it supports CMake out-of-the-box).

Here is an example recipe for generationg Visual Studio project (list of all CMake supported IDEs). After installing CMake, open your terminal, go to epi_judge_cpp folder and run following commands:

mkdir vs
cd vs
cmake -G "Visual Studio 15 2017" ..

Then just open epi_judge_cpp/vs/epi_judge_cpp.sln solution with Visual Studio and it will load all EPI programs.

Problem to Program Mapping

(You may have to scroll to the right to view the Python column.)

ProblemC++JavaPython
Bootcamp: Primitive Typescount_bits.ccCountBits.javacount_bits.py
Computing the parity of a wordparity.ccParity.javaparity.py
Swap bitsswap_bits.ccSwapBits.javaswap_bits.py
Reverse bitsreverse_bits.ccReverseBits.javareverse_bits.py
Find a closest integer with the same weightclosest_int_same_weight.ccClosestIntSameWeight.javaclosest_int_same_weight.py
Compute x * y without arithmetical operatorsprimitive_multiply.ccPrimitiveMultiply.javaprimitive_multiply.py
Compute x/yprimitive_divide.ccPrimitiveDivide.javaprimitive_divide.py
Compute x^ypower_x_y.ccPowerXY.javapower_x_y.py
Reverse digitsreverse_digits.ccReverseDigits.javareverse_digits.py
Check if a decimal integer is a palindromeis_number_palindromic.ccIsNumberPalindromic.javais_number_palindromic.py
Generate uniform random numbersuniform_random_number.ccUniformRandomNumber.javauniform_random_number.py
Rectangle intersectionrectangle_intersection.ccRectangleIntersection.javarectangle_intersection.py
Bootcamp: Arrayseven_odd_array.ccEvenOddArray.javaeven_odd_array.py
The Dutch national flag problemdutch_national_flag.ccDutchNationalFlag.javadutch_national_flag.py
Increment an arbitrary-precision integerint_as_array_increment.ccIntAsArrayIncrement.javaint_as_array_increment.py
Multiply two arbitrary-precision integersint_as_array_multiply.ccIntAsArrayMultiply.javaint_as_array_multiply.py
Advancing through an arrayadvance_by_offsets.ccAdvanceByOffsets.javaadvance_by_offsets.py
Delete duplicates from a sorted arraysorted_array_remove_dups.ccSortedArrayRemoveDups.javasorted_array_remove_dups.py
Buy and sell a stock oncebuy_and_sell_stock.ccBuyAndSellStock.javabuy_and_sell_stock.py
Buy and sell a stock twicebuy_and_sell_stock_twice.ccBuyAndSellStockTwice.javabuy_and_sell_stock_twice.py
Computing an alternationalternating_array.ccAlternatingArray.javaalternating_array.py
Enumerate all primes to nprime_sieve.ccPrimeSieve.javaprime_sieve.py
Permute the elements of an arrayapply_permutation.ccApplyPermutation.javaapply_permutation.py
Compute the next permutationnext_permutation.ccNextPermutation.javanext_permutation.py
Sample offline dataoffline_sampling.ccOfflineSampling.javaoffline_sampling.py
Sample online dataonline_sampling.ccOnlineSampling.javaonline_sampling.py
Compute a random permutationrandom_permutation.ccRandomPermutation.javarandom_permutation.py
Compute a random subsetrandom_subset.ccRandomSubset.javarandom_subset.py
Generate nonuniform random numbersnonuniform_random_number.ccNonuniformRandomNumber.javanonuniform_random_number.py
The Sudoku checker problemis_valid_sudoku.ccIsValidSudoku.javais_valid_sudoku.py
Compute the spiral ordering of a 2D arrayspiral_ordering_segments.ccSpiralOrderingSegments.javaspiral_ordering_segments.py
Rotate a 2D arraymatrix_rotation.ccMatrixRotation.javamatrix_rotation.py
Compute rows in Pascal's Trianglepascal_triangle.ccPascalTriangle.javapascal_triangle.py
Interconvert strings and integersstring_integer_interconversion.ccStringIntegerInterconversion.javastring_integer_interconversion.py
Base conversionconvert_base.ccConvertBase.javaconvert_base.py
Compute the spreadsheet column encodingspreadsheet_encoding.ccSpreadsheetEncoding.javaspreadsheet_encoding.py
Replace and removereplace_and_remove.ccReplaceAndRemove.javareplace_and_remove.py
Test palindromicityis_string_palindromic_punctuation.ccIsStringPalindromicPunctuation.javais_string_palindromic_punctuation.py
Reverse all the words in a sentencereverse_words.ccReverseWords.javareverse_words.py
Compute all mnemonics for a phone numberphone_number_mnemonic.ccPhoneNumberMnemonic.javaphone_number_mnemonic.py
The look-and-say problemlook_and_say.ccLookAndSay.javalook_and_say.py
Convert from Roman to decimalroman_to_integer.ccRomanToInteger.javaroman_to_integer.py
Compute all valid IP addressesvalid_ip_addresses.ccValidIpAddresses.javavalid_ip_addresses.py
Write a string sinusoidallysnake_string.ccSnakeString.javasnake_string.py
Implement run-length encodingrun_length_compression.ccRunLengthCompression.javarun_length_compression.py
Find the first occurrence of a substringsubstring_match.ccSubstringMatch.javasubstring_match.py
Bootcamp: Linked Listssearch_in_list.ccSearchInList.javasearch_in_list.py
Bootcamp: Linked Listsinsert_in_list.ccInsertInList.javainsert_in_list.py
Bootcamp: Linked Listsdelete_from_list.ccDeleteFromList.javadelete_from_list.py
Merge two sorted listssorted_lists_merge.ccSortedListsMerge.javasorted_lists_merge.py
Reverse a single sublistreverse_sublist.ccReverseSublist.javareverse_sublist.py
Test for cyclicityis_list_cyclic.ccIsListCyclic.javais_list_cyclic.py
Test for overlapping lists - lists are cycle-freedo_terminated_lists_overlap.ccDoTerminatedListsOverlap.javado_terminated_lists_overlap.py
Test for overlapping lists - lists may have cyclesdo_lists_overlap.ccDoListsOverlap.javado_lists_overlap.py
Delete a node from a singly linked listdelete_node_from_list.ccDeleteNodeFromList.javadelete_node_from_list.py
Remove the kth last element from a listdelete_kth_last_from_list.ccDeleteKthLastFromList.javadelete_kth_last_from_list.py
Remove duplicates from a sorted listremove_duplicates_from_sorted_list.ccRemoveDuplicatesFromSortedList.javaremove_duplicates_from_sorted_list.py
Implement cyclic right shift for singly linked listslist_cyclic_right_shift.ccListCyclicRightShift.javalist_cyclic_right_shift.py
Implement even-odd mergeeven_odd_list_merge.ccEvenOddListMerge.javaeven_odd_list_merge.py
Test whether a singly linked list is palindromicis_list_palindromic.ccIsListPalindromic.javais_list_palindromic.py
Implement list pivotingpivot_list.ccPivotList.javapivot_list.py
Add list-based integersint_as_list_add.ccIntAsListAdd.javaint_as_list_add.py
Implement a stack with max APIstack_with_max.ccStackWithMax.javastack_with_max.py
Evaluate RPN expressionsevaluate_rpn.ccEvaluateRpn.javaevaluate_rpn.py
Test a string over ''{,},(,),[,]'' for well-formednessis_valid_parenthesization.ccIsValidParenthesization.javais_valid_parenthesization.py
Normalize pathnamesdirectory_path_normalization.ccDirectoryPathNormalization.javadirectory_path_normalization.py
Compute buildings with a sunset viewsunset_view.ccSunsetView.javasunset_view.py
Compute binary tree nodes in order of increasing depthtree_level_order.ccTreeLevelOrder.javatree_level_order.py
Implement a circular queuecircular_queue.ccCircularQueue.javacircular_queue.py
Implement a queue using stacksqueue_from_stacks.ccQueueFromStacks.javaqueue_from_stacks.py
Implement a queue with max APIqueue_with_max.ccQueueWithMax.javaqueue_with_max.py
Test if a binary tree is height-balancedis_tree_balanced.ccIsTreeBalanced.javais_tree_balanced.py
Test if a binary tree is symmetricis_tree_symmetric.ccIsTreeSymmetric.javais_tree_symmetric.py
Compute the lowest common ancestor in a binary treelowest_common_ancestor.ccLowestCommonAncestor.javalowest_common_ancestor.py
Compute the LCA when nodes have parent pointerslowest_common_ancestor_with_parent.ccLowestCommonAncestorWithParent.javalowest_common_ancestor_with_parent.py
Sum the root-to-leaf paths in a binary treesum_root_to_leaf.ccSumRootToLeaf.javasum_root_to_leaf.py
Find a root to leaf path with specified sumpath_sum.ccPathSum.javapath_sum.py
Implement an inorder traversal without recursiontree_inorder.ccTreeInorder.javatree_inorder.py
Implement a preorder traversal without recursiontree_preorder.ccTreePreorder.javatree_preorder.py
Compute the kth node in an inorder traversalkth_node_in_tree.ccKthNodeInTree.javakth_node_in_tree.py
Compute the successorsuccessor_in_tree.ccSuccessorInTree.javasuccessor_in_tree.py
Implement an inorder traversal with O(1) spacetree_with_parent_inorder.ccTreeWithParentInorder.javatree_with_parent_inorder.py
Reconstruct a binary tree from traversal datatree_from_preorder_inorder.ccTreeFromPreorderInorder.javatree_from_preorder_inorder.py
Reconstruct a binary tree from a preorder traversal with markerstree_from_preorder_with_null.ccTreeFromPreorderWithNull.javatree_from_preorder_with_null.py
Form a linked list from the leaves of a binary treetree_connect_leaves.ccTreeConnectLeaves.javatree_connect_leaves.py
Compute the exterior of a binary treetree_exterior.ccTreeExterior.javatree_exterior.py
Compute the right sibling treetree_right_sibling.ccTreeRightSibling.javatree_right_sibling.py
Merge sorted filessorted_arrays_merge.ccSortedArraysMerge.javasorted_arrays_merge.py
Sort an increasing-decreasing arraysort_increasing_decreasing_array.ccSortIncreasingDecreasingArray.javasort_increasing_decreasing_array.py
Sort an almost-sorted arraysort_almost_sorted_array.ccSortAlmostSortedArray.javasort_almost_sorted_array.py
Compute the k closest starsk_closest_stars.ccKClosestStars.javak_closest_stars.py
Compute the median of online dataonline_median.ccOnlineMedian.javaonline_median.py
Compute the k largest elements in a max-heapk_largest_in_heap.ccKLargestInHeap.javak_largest_in_heap.py
Search a sorted array for first occurrence of ksearch_first_key.ccSearchFirstKey.javasearch_first_key.py
Search a sorted array for entry equal to its indexsearch_entry_equal_to_index.ccSearchEntryEqualToIndex.javasearch_entry_equal_to_index.py
Search a cyclically sorted arraysearch_shifted_sorted_array.ccSearchShiftedSortedArray.javasearch_shifted_sorted_array.py
Compute the integer square rootint_square_root.ccIntSquareRoot.javaint_square_root.py
Compute the real square rootreal_square_root.ccRealSquareRoot.javareal_square_root.py
Search in a 2D sorted arraysearch_row_col_sorted_matrix.ccSearchRowColSortedMatrix.javasearch_row_col_sorted_matrix.py
Find the min and max simultaneouslysearch_for_min_max_in_array.ccSearchForMinMaxInArray.javasearch_for_min_max_in_array.py
Find the kth largest elementkth_largest_in_array.ccKthLargestInArray.javakth_largest_in_array.py
Find the missing IP addressabsent_value_array.ccAbsentValueArray.javaabsent_value_array.py
Find the duplicate and missing elementssearch_for_missing_element.ccSearchForMissingElement.javasearch_for_missing_element.py
Bootcamp: Hash Tablesanagrams.ccAnagrams.javaanagrams.py
Test for palindromic permutationsis_string_permutable_to_palindrome.ccIsStringPermutableToPalindrome.javais_string_permutable_to_palindrome.py
Is an anonymous letter constructible?is_anonymous_letter_constructible.ccIsAnonymousLetterConstructible.javais_anonymous_letter_constructible.py
Implement an ISBN cachelru_cache.ccLruCache.javalru_cache.py
Compute the LCA, optimizing for close ancestorslowest_common_ancestor_close_ancestor.ccLowestCommonAncestorCloseAncestor.javalowest_common_ancestor_close_ancestor.py
Find the nearest repeated entries in an arraynearest_repeated_entries.ccNearestRepeatedEntries.javanearest_repeated_entries.py
Find the smallest subarray covering all valuessmallest_subarray_covering_set.ccSmallestSubarrayCoveringSet.javasmallest_subarray_covering_set.py
Find smallest subarray sequentially covering all valuessmallest_subarray_covering_all_values.ccSmallestSubarrayCoveringAllValues.javasmallest_subarray_covering_all_values.py
Find the longest subarray with distinct entrieslongest_subarray_with_distinct_values.ccLongestSubarrayWithDistinctValues.javalongest_subarray_with_distinct_values.py
Find the length of a longest contained intervallongest_contained_interval.ccLongestContainedInterval.javalongest_contained_interval.py
Compute all string decompositionsstring_decompositions_into_dictionary_words.ccStringDecompositionsIntoDictionaryWords.javastring_decompositions_into_dictionary_words.py
Test the Collatz conjecturecollatz_checker.ccCollatzChecker.javacollatz_checker.py
Compute the intersection of two sorted arraysintersect_sorted_arrays.ccIntersectSortedArrays.javaintersect_sorted_arrays.py
Merge two sorted arraystwo_sorted_arrays_merge.ccTwoSortedArraysMerge.javatwo_sorted_arrays_merge.py
Computing the h-indexh_index.ccHIndex.javah_index.py
Remove first-name duplicatesremove_duplicates.ccRemoveDuplicates.javaremove_duplicates.py
Smallest nonconstructible valuesmallest_nonconstructible_value.ccSmallestNonconstructibleValue.javasmallest_nonconstructible_value.py
Render a calendarcalendar_rendering.ccCalendarRendering.javacalendar_rendering.py
Merging intervalsinterval_add.ccIntervalAdd.javainterval_add.py
Compute the union of intervalsintervals_union.ccIntervalsUnion.javaintervals_union.py
Partitioning and sorting an array with many repeated entriesgroup_equal_entries.ccGroupEqualEntries.javagroup_equal_entries.py
Team photo day - 1is_array_dominated.ccIsArrayDominated.javais_array_dominated.py
Implement a fast sorting algorithm for listssort_list.ccSortList.javasort_list.py
Compute a salary thresholdfind_salary_threshold.ccFindSalaryThreshold.javafind_salary_threshold.py
Test if a binary tree satisfies the BST propertyis_tree_a_bst.ccIsTreeABst.javais_tree_a_bst.py
Find the first key greater than a given value in a BSTsearch_first_greater_value_in_bst.ccSearchFirstGreaterValueInBst.javasearch_first_greater_value_in_bst.py
Find the k largest elements in a BSTk_largest_values_in_bst.ccKLargestValuesInBst.javak_largest_values_in_bst.py
Compute the LCA in a BSTlowest_common_ancestor_in_bst.ccLowestCommonAncestorInBst.javalowest_common_ancestor_in_bst.py
Reconstruct a BST from traversal databst_from_preorder.ccBstFromPreorder.javabst_from_preorder.py
Find the closest entries in three sorted arraysminimum_distance_3_sorted_arrays.ccMinimumDistance3SortedArrays.javaminimum_distance_3_sorted_arrays.py
Enumerate numbers of the form a + b sqrt(2)a_b_sqrt2.ccABSqrt2.javaa_b_sqrt2.py
Build a minimum height BST from a sorted arraybst_from_sorted_array.ccBstFromSortedArray.javabst_from_sorted_array.py
Test if three BST nodes are totally ordereddescendant_and_ancestor_in_bst.ccDescendantAndAncestorInBst.javadescendant_and_ancestor_in_bst.py
The range lookup problemrange_lookup_in_bst.ccRangeLookupInBst.javarange_lookup_in_bst.py
Add creditsadding_credits.ccAddingCredits.javaadding_credits.py
The Towers of Hanoi problemhanoi.ccHanoi.javahanoi.py
Generate all nonattacking placements of n-Queensn_queens.ccNQueens.javan_queens.py
Generate permutationspermutations.ccPermutations.javapermutations.py
Generate the power setpower_set.ccPowerSet.javapower_set.py
Generate all subsets of size kcombinations.ccCombinations.javacombinations.py
Generate strings of matched parensenumerate_balanced_parentheses.ccEnumerateBalancedParentheses.javaenumerate_balanced_parentheses.py
Generate palindromic decompositionsenumerate_palindromic_decompositions.ccEnumeratePalindromicDecompositions.javaenumerate_palindromic_decompositions.py
Generate binary treesenumerate_trees.ccEnumerateTrees.javaenumerate_trees.py
Implement a Sudoku solversudoku_solve.ccSudokuSolve.javasudoku_solve.py
Compute a Gray codegray_code.ccGrayCode.javagray_code.py
Bootcamp: Dynamic Programmingfibonacci.ccFibonacci.javafibonacci.py
Bootcamp: Dynamic Programmingmax_sum_subarray.ccMaxSumSubarray.javamax_sum_subarray.py
Count the number of score combinationsnumber_of_score_combinations.ccNumberOfScoreCombinations.javanumber_of_score_combinations.py
Compute the Levenshtein distancelevenshtein_distance.ccLevenshteinDistance.javalevenshtein_distance.py
Count the number of ways to traverse a 2D arraynumber_of_traversals_matrix.ccNumberOfTraversalsMatrix.javanumber_of_traversals_matrix.py
Compute the binomial coefficientsbinomial_coefficients.ccBinomialCoefficients.javabinomial_coefficients.py
Search for a sequence in a 2D arrayis_string_in_matrix.ccIsStringInMatrix.javais_string_in_matrix.py
The knapsack problemknapsack.ccKnapsack.javaknapsack.py
The bedbathandbeyond.com problemis_string_decomposable_into_words.ccIsStringDecomposableIntoWords.javais_string_decomposable_into_words.py
Find the minimum weight path in a triangleminimum_weight_path_in_a_triangle.ccMinimumWeightPathInATriangle.javaminimum_weight_path_in_a_triangle.py
Pick up coins for maximum gainpicking_up_coins.ccPickingUpCoins.javapicking_up_coins.py
Count the number of moves to climb stairsnumber_of_traversals_staircase.ccNumberOfTraversalsStaircase.javanumber_of_traversals_staircase.py
The pretty printing problempretty_printing.ccPrettyPrinting.javapretty_printing.py
Find the longest nondecreasing subsequencelongest_nondecreasing_subsequence.ccLongestNondecreasingSubsequence.javalongest_nondecreasing_subsequence.py
Compute an optimum assignment of taskstask_pairing.ccTaskPairing.javatask_pairing.py
Schedule to minimize waiting timeminimum_waiting_time.ccMinimumWaitingTime.javaminimum_waiting_time.py
The interval covering problemminimum_points_covering_intervals.ccMinimumPointsCoveringIntervals.javaminimum_points_covering_intervals.py
The interval covering problemtwo_sum.ccTwoSum.javatwo_sum.py
The 3-sum problemthree_sum.ccThreeSum.javathree_sum.py
Find the majority elementmajority_element.ccMajorityElement.javamajority_element.py
The gasup problemrefueling_schedule.ccRefuelingSchedule.javarefueling_schedule.py
Compute the maximum water trapped by a pair of vertical linesmax_trapped_water.ccMaxTrappedWater.javamax_trapped_water.py
Compute the largest rectangle under the skylinelargest_rectangle_under_skyline.ccLargestRectangleUnderSkyline.javalargest_rectangle_under_skyline.py
Search a mazesearch_maze.ccSearchMaze.javasearch_maze.py
Paint a Boolean matrixmatrix_connected_regions.ccMatrixConnectedRegions.javamatrix_connected_regions.py
Compute enclosed regionsmatrix_enclosed_regions.ccMatrixEnclosedRegions.javamatrix_enclosed_regions.py
Deadlock detectiondeadlock_detection.ccDeadlockDetection.javadeadlock_detection.py
Clone a graphgraph_clone.ccGraphClone.javagraph_clone.py
Making wired connectionsis_circuit_wirable.ccIsCircuitWirable.javais_circuit_wirable.py
Transform one string to anotherstring_transformability.ccStringTransformability.javastring_transformability.py
Team photo day - 2max_teams_in_photograph.ccMaxTeamsInPhotograph.javamax_teams_in_photograph.py
Compute the greatest common divisorgcd.ccGcd.javagcd.py
Find the first missing positive entryfirst_missing_positive_entry.ccFirstMissingPositiveEntry.javafirst_missing_positive_entry.py
Buy and sell a stock k timesbuy_and_sell_stock_k_times.ccBuyAndSellStockKTimes.javabuy_and_sell_stock_k_times.py
Compute the maximum product of all entries but onemax_product_all_but_one.ccMaxProductAllButOne.javamax_product_all_but_one.py
Compute the longest contiguous increasing subarraylongest_increasing_subarray.ccLongestIncreasingSubarray.javalongest_increasing_subarray.py
Rotate an arrayrotate_array.ccRotateArray.javarotate_array.py
Identify positions attacked by rooksrook_attack.ccRookAttack.javarook_attack.py
Justify textleft_right_justify_text.ccLeftRightJustifyText.javaleft_right_justify_text.py
Implement list zippingzip_list.ccZipList.javazip_list.py
Copy a postings listcopy_posting_list.ccCopyPostingList.javacopy_posting_list.py
Compute the longest substring with matching parenslongest_substring_with_matching_parentheses.ccLongestSubstringWithMatchingParentheses.javalongest_substring_with_matching_parentheses.py
Compute the maximum of a sliding windowmax_of_sliding_window.ccMaxOfSlidingWindow.javamax_of_sliding_window.py
Implement a postorder traversal without recursiontree_postorder.ccTreePostorder.javatree_postorder.py
Compute fair bonusesbonus.ccBonus.javabonus.py
Search a sorted array of unknown lengthsearch_unknown_length_array.ccSearchUnknownLengthArray.javasearch_unknown_length_array.py
Search in two sorted arrayskth_largest_element_in_two_sorted_arrays.ccKthLargestElementInTwoSortedArrays.javakth_largest_element_in_two_sorted_arrays.py
Find the kth largest element - large n, small kkth_largest_element_in_long_array.ccKthLargestElementInLongArray.javakth_largest_element_in_long_array.py
Find an element that appears only onceelement_appearing_once.ccElementAppearingOnce.javaelement_appearing_once.py
Find the line through the most pointsline_through_most_points.ccLineThroughMostPoints.javaline_through_most_points.py
Convert a sorted doubly linked list into a BSTsorted_list_to_bst.ccSortedListToBst.javasorted_list_to_bst.py
Convert a BST to a sorted doubly linked listbst_to_sorted_list.ccBstToSortedList.javabst_to_sorted_list.py
Merge two BSTsbst_merge.ccBstMerge.javabst_merge.py
Implement regular expression matchingregular_expression.ccRegularExpression.javaregular_expression.py
Synthesize an expressioninsert_operators_in_string.ccInsertOperatorsInString.javainsert_operators_in_string.py
Count inversionscount_inversions.ccCountInversions.javacount_inversions.py
Draw the skylinedrawing_skyline.ccDrawingSkyline.javadrawing_skyline.py
Measure with defective jugsdefective_jugs.ccDefectiveJugs.javadefective_jugs.py
Compute the maximum subarray sum in a circular arraymaximum_subarray_in_circular_array.ccMaximumSubarrayInCircularArray.javamaximum_subarray_in_circular_array.py
Determine the critical heightmax_safe_height.ccMaxSafeHeight.javamax_safe_height.py
Find the maximum 2D subarraymax_submatrix.ccMaxSubmatrix.javamax_submatrix.py
Find the maximum 2D subarraymax_square_submatrix.ccMaxSquareSubmatrix.javamax_square_submatrix.py
Implement Huffman codinghuffman_coding.ccHuffmanCoding.javahuffman_coding.py
Trapping watermax_water_trappable.ccMaxWaterTrappable.javamax_water_trappable.py
The heavy hitter problemsearch_frequent_items.ccSearchFrequentItems.javasearch_frequent_items.py
Find the longest subarray whose sum <= klongest_subarray_with_sum_constraint.ccLongestSubarrayWithSumConstraint.javalongest_subarray_with_sum_constraint.py
Road networkroad_network.ccRoadNetwork.javaroad_network.py
Test if arbitrage is possiblearbitrage.ccArbitrage.javaarbitrage.py

Acknowledgments

A big shout-out to the hundreds of users who tried out the release over the past couple of months. As always, we never fail to be impressed by the enthusiasm and commitment our readers have; it has served to bring out the best in us. We all thank Viacheslav Kroilov, for applying his exceptional software engineering skills to make EPI Judge a reality.

About

EPI Judge - Preview Release

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages