Note: This index is not exhaustive.
Trie
- kattis/bing.cpp
- kattis/doublets.cpp
- kattis/phonelist.cpp
- leetcode/concatenated-words.cpp
- leetcode/count-prefix-and-suffix-pairs-ii.cpp
- leetcode/design-add-and-search-words-data-structure.cpp
- leetcode/extra-characters-in-a-string.cpp
- leetcode/implement-trie-prefix-tree.cpp
- leetcode/longest-common-suffix-queries.cpp
- leetcode/map-sum-pairs.cpp
- leetcode/memoize-ii.js
- leetcode/minimum-number-of-valid-strings-to-form-target-i.cpp
- leetcode/partition-string.cpp
- leetcode/replace-words.cpp
- leetcode/search-suggestions-system.cpp
- leetcode/word-break-ii.cpp
- leetcode/word-ladder.cpp
- uva/12506-shortest_names.cpp
- uva/12526-cellphone_typing.cpp
Radix Tree
- leetcode/minimum-number-of-valid-strings-to-form-target-i.cpp
- leetcode/partition-string.cpp
- leetcode/replace-words.cpp
- leetcode/word-break-ii.cpp
Suffix Array
Suffix Automaton
- leetcode/number-of-strings-that-appear-as-substrings-in-word.cpp
- spoj/DISUBSTR-distinct_substrings.cpp
- spoj/LCS-longest_common_substring.cpp
- urionlinejudge/3018-gluing_pictures_suffix_automaton.cpp
- uva/10679-i_love_strings.cpp
KMP and LPS (Longest Proper Prefix Which Is Also a Suffix)
- codeforces/D-muh_and_cube_walls.cpp
- codeforces/D-prefixes_and_suffixes.cpp
- leetcode/find-beautiful-indices-in-the-given-array-i.cpp
- leetcode/find-beautiful-indices-in-the-given-array-ii.cpp
- leetcode/form-array-by-concatenating-subarrays-of-another-array.cpp
- leetcode/longest-happy-prefix.cpp
- leetcode/number-of-subarrays-that-match-a-pattern-ii.cpp
- leetcode/remove-all-occurrences-of-a-substring.cpp
- leetcode/repeated-string-match.cpp
- leetcode/string-matching-in-an-array.cpp
- leetcode/string-transformation.cpp
- spoj/NAJPF-pattern_find.cpp
Z-Algorithm
- codeforces/D-prefixes_and_suffixes.cpp
- leetcode/count-prefix-and-suffix-pairs-ii.cpp
- leetcode/minimum-time-to-revert-word-to-initial-state-ii.cpp
- leetcode/repeated-substring-pattern.cpp
- leetcode/shortest-palindrome.cpp
- leetcode/sum-of-scores-of-built-strings.cpp
Segment Tree
- atcoder/D-flat_subsequence.cpp
- codeforces/domino_principle.cpp
- codeforces/pillars.cpp
- cses/hotel_queries.cpp
- kattis/antimatterrain.cpp
- kattis/longincsubseq.cpp
- kattis/mountainouslandscape.cpp
- kattis/supercomputer.cpp
- leetcode/block-placement-queries.cpp
- leetcode/closest-room.cpp
- leetcode/container-with-most-water.cpp
- leetcode/find-building-where-alice-and-bob-can-meet.cpp
- leetcode/find-the-longest-valid-obstacle-course-at-each-position.cpp
- leetcode/fruits-into-baskets-iii.cpp
- leetcode/jump-game.cpp
- leetcode/maximum-area-rectangle-with-point-constraints-ii.cpp
- leetcode/maximum-balanced-subsequence-sum.cpp
- leetcode/maximum-earnings-from-taxi.cpp
- leetcode/maximum-profit-in-job-scheduling.cpp
- leetcode/monotonic-array.cpp
- leetcode/next-greater-element-iv.cpp
- leetcode/russian-doll-envelopes.cpp
- spoj/FREQUENT-frequent_values.cpp
- spoj/HORRIBLE-horrible_queries.cpp
- spoj/RMQSQ-range_minimum_query.cpp
- urionlinejudge/1477-man_elephant_and_mouse.cpp
- urionlinejudge/1496-go_up_the_ultras.cpp
- urionlinejudge/1969-generations.cpp
- urionlinejudge/2010-keep_it_energized_2.cpp
- urionlinejudge/2010-keep_it_energized.cpp
- urionlinejudge/2531-shopping_in_fdi.cpp
- urionlinejudge/2655-dangerous_trail.cpp
- urionlinejudge/2700-fundraising.cpp
- urionlinejudge/3014-cut_inequality_down_online.cpp
- urionlinejudge/3021-jumping_grasshopper.cpp
- uva/12532-interval_product.cpp
Segment Tree + Lazy Propagation
- cses/polynomial_queries.cpp
- cses/range_updates_and_sums.cpp
- dmoj/IOI14-wall.cpp
- kattis/queryonarray.cpp
- leetcode/longest-substring-of-one-repeating-character.cpp
- spoj/HORRIBLE-horrible_queries.cpp
- urionlinejudge/1477-man_elephant_and_mouse.cpp
BIT (Fenwick Tree)
- acmicpc.net/17703-dragon_2.cpp
- atcoder/F-rectilinear_polygons.cpp
- atcoder/I-double_sum.cpp
- codechef/FLYMODE.cpp
- codechef/LAZER.cpp
- codechef/SQUAGAME.cpp
- codeforces/excellent_views.cpp
- codeforces/geometers_anonymous_club.cpp
- cses/intersection_points.cpp
- kattis/bridgebuilding.cpp
- kattis/megainversions.cpp
- leetcode/create-sorted-array-through-instructions.cpp
- leetcode/distribute-elements-into-two-arrays-ii.cpp
- leetcode/divide-an-array-into-subarrays-with-minimum-cost-ii.cpp
- leetcode/longest-uploaded-prefix.cpp
- leetcode/make-array-empty.cpp
- leetcode/number-of-pairs-satisfying-inequality.cpp
- leetcode/peaks-in-array.cpp
- leetcode/range-sum-query-mutable.cpp
- leetcode/reverse-pairs.cpp
- leetcode/sliding-window-median.cpp
- spoj/ADARAINB-ada_and_rain_ii.cpp
- spoj/HAYBALE-haybale_stacking.cpp
- spoj/HORRIBLE-horrible_queries_BIT.cpp
- urionlinejudge/1856-aryas_death_list.cpp
- urionlinejudge/2007-fence_the_vegetables_fail.cpp
- urionlinejudge/2792-golnaldinho.cpp
- urionlinejudge/3359-ancient_towers.cpp
Merge Sort Tree
- leetcode/count-of-range-sum.cpp
- leetcode/count-of-smaller-numbers-after-self.cpp
- spoj/KQUERY-kquery.cpp
2D Segment Tree
Radial Sweep (and Polar Sort)
- acmicpc.net/17703-dragon_2.cpp
- atcoder/009-three_point_angle.cpp
- atcoder/D-emlauncher.cpp
- atcoder/D-三角形の分類.cpp
- atcoder/F-engines.cpp
- atcoder/G-バス停と凸包.cpp
- codechef/CNVX4HUL.cpp
- codechef/REDBLUE.cpp
- codeforces/birthday_cake.cpp
- codeforces/disjoint_triangles.cpp
- codeforces/geometers_anonymous_club.cpp
- kattis/fancy.cpp
- kattis/leylines.cpp
- kattis/maxcolinear.cpp
- kattis/oil2.cpp
- kattis/oldschooldays.cpp
- kattis/single.cpp
- kattis/spin.cpp
- leetcode/max-points-on-a-line.cpp
- leetcode/maximum-number-of-visible-points.cpp
- leetcode/valid-square.cpp
- spoj/ADAKOHL-ada_and_kohlrabi.cpp
- spoj/ADAPICK-ada_and_cucumber.cpp
- spoj/BLMIRANA-mayonnaise_arrow.cpp
- spoj/IOIBOUND-boundary_2003.cpp
- spoj/SPOINTS-separate_points.cpp
- spoj/TAP2013F-flowers_of_babylon.cpp
- szkopul/2018-stone.cpp
- urionlinejudge/1108-towers_for_mobile_telephony.cpp
- urionlinejudge/1268-mission_impossible.cpp
- urionlinejudge/1336-garden_fence.cpp
- urionlinejudge/1497-hide_and_seek_2.cpp
- urionlinejudge/1613-goemon_is_in_trouble.cpp
- urionlinejudge/3013-build_the_perfect_house.cpp
- urionlinejudge/3015-dazzling_stars.cpp
- urionlinejudge/3359-ancient_towers.cpp
Convex Hull
- atcoder/F-visible_buildings.cpp
- atcoder/G-share_the_ruins_preservation.cpp
- kattis/convexhull.cpp
- kattis/fasterthanlight.cpp
- kattis/fence.cpp
- kattis/forestofcelery.cpp
- kattis/largesttriangle.cpp
- kattis/mountainouslandscape.cpp
- kattis/roberthood.cpp
- kattis/robotprotection.cpp
- leetcode/erect-the-fence.cpp
- spoj/BSHEEP-build_the_fence.cpp
- urionlinejudge/1315-not_too_convex_hull_2.cpp
- urionlinejudge/1464-onion_layers.cpp
- urionlinejudge/2541-ingrest.cpp
- urionlinejudge/3015-dazzling_stars_2.cpp
- uva/12307-smallest_enclosing_rectangle.cpp
Shoelace Formula (Polygon Area)
- atcoder/F-rectilinear_polygons.cpp
- atcoder/G-share_the_ruins_preservation.cpp
- atcoder/G-バス停と凸包.cpp
- cses/polygon_lattice_points.cpp
- kattis/artappreciation.cpp
- kattis/convexpolygonarea.cpp
- kattis/cookiecutter.cpp
- kattis/crane.cpp
- kattis/polygonarea.cpp
- kattis/robotprotection.cpp
Sweep Line
- atcoder/F-rectilinear_polygons.cpp
- codechef/LAZER.cpp
- codechef/LIGHT.cpp
- codechef/SQUAGAME.cpp
- codechef/TOWCNT.cpp
- cses/intersection_points.cpp
- kattis/antimatterrain.cpp
- kattis/arable.cpp
- kattis/directingrainfall.cpp
- kattis/pinball.cpp
- kattis/polygon.cpp
- kattis/rectilinear.cpp
- kattis/unrealestate.cpp
- kattis/visitorstrain.cpp
- kattis/visual.cpp
- leetcode/count-number-of-rectangles-containing-each-point.cpp
- leetcode/find-the-number-of-ways-to-place-people-i.cpp
- leetcode/find-the-number-of-ways-to-place-people-ii.cpp
- leetcode/maximum-area-rectangle-with-point-constraints-ii.cpp
- leetcode/perfect-rectangle.cpp
- leetcode/rectangle-area-ii-2.cpp
- leetcode/rectangle-area-ii.cpp
- leetcode/self-crossing.cpp
- leetcode/separate-squares-ii.cpp
- leetcode/the-skyline-problem.cpp
- spoj/ADARAINB-ada_and_rain_ii.cpp
- spoj/RAIN1-november_rain.cpp
- urionlinejudge/1468-balloon.cpp
- urionlinejudge/1748-fence_the_vegetables.cpp
- urionlinejudge/2007-fence_the_vegetables_fail.cpp
- urionlinejudge/2043-high_mountains_faster.cpp
- urionlinejudge/2043-high_mountains.cpp
- usaco/hill_walk.cpp
Minkowski Sum
- codeforces/gears.cpp
- codeforces/geometers_anonymous_club.cpp
- codeforces/mogohurea_idol.cpp
- leetcode/circle-and-rectangle-overlapping.cpp
- timus/1894-nonflying_weather.cpp
- urionlinejudge/3448-gravitational_wave_detector.cpp
Quadrilaterals
- codechef/CNVX4HUL.cpp
- codeforces/maximal_area_quadrilateral.cpp
- kattis/oldschooldays.cpp
- urionlinejudge/3359-ancient_towers.cpp
Segment to Segment Distance
Circle & Segment Intersection
Circle & Rectangle Intersection
Tangents & Arcs
- codeforces/cornering_at_poles.cpp
- kattis/fruitslicer.cpp
- spoj/BLMIRINA-archery_training.cpp
- urionlinejudge/1268-mission_impossible.cpp
- urionlinejudge/1646-forest.cpp
- urionlinejudge/3013-build_the_perfect_house.cpp
Polygon Tangents
Geometry with Dynamic Programming
- codeforces/impenetrable_wall.cpp
- kattis/beautifulbridges.cpp
- kattis/fancy.cpp
- kattis/trimmingpolygons.cpp
- spoj/MPOLY-polygon.cpp
- urionlinejudge/1315-not_too_convex_hull_2.cpp
- urionlinejudge/2665-hipercampo.cpp
- urionlinejudge/2695-arranging_tiles.cpp
- urionlinejudge/3064-elastico.cpp
Convex Polygons + Two-Pointers
- atcoder/B-longest_segment.cpp
- codeforces/new_year_and_cake.cpp
- codeforces/very_simple_problem.cpp
- kattis/fancy.cpp
- kattis/fasterthanlight.cpp
- kattis/forestofcelery.cpp
- kattis/largesttriangle.cpp
- kattis/roberthood.cpp
- urionlinejudge/2015-cake_cut.cpp
- urionlinejudge/2695-arranging_tiles.cpp
- urionlinejudge/2904-building_a_field.go
- urionlinejudge/2907-escape_polygon_2.cpp
- uva/12307-smallest_enclosing_rectangle.cpp
Concave Polygons
- kattis/airport.cpp
- kattis/arable.cpp
- kattis/biometrics.cpp
- kattis/cookiecutter.cpp
- kattis/crane.cpp
- kattis/cuttingpolygon.cpp
- kattis/floatingpoints.cpp
- kattis/forest.cpp
- kattis/maptiles.cpp
- kattis/pollution.cpp
- kattis/polygonarea.cpp
- kattis/problematicpolygons.cpp
- kattis/puzzle2.cpp
- urionlinejudge/2007-fence_the_vegetables_fail.cpp
- urionlinejudge/3361-cyclists_versus_clouds.cpp
Point Inside Polygon
- atcoder/F-rectilinear_polygons.cpp
- atcoder/G-polygon_and_points.cpp
- codeforces/mogohurea_idol.cpp
- kattis/domes.cpp
- kattis/icefloes.cpp
- kattis/maptiles.cpp
- kattis/pointinpolygon.cpp
- kattis/problematicpolygons.cpp
- kattis/spin.cpp
- spoj/INOROUT-inside_or_outside.cpp
- urionlinejudge/2007-fence_the_vegetables_fail.cpp
- urionlinejudge/3448-gravitational_wave_detector.cpp
Polygon Intersection
- aizu/CGL_7_H-intersection_of_a_circle_and_a_polygon.cpp
- kattis/asteroids.cpp
- kattis/domes.cpp
- kattis/forest.cpp
- kattis/hiddencamera.cpp
- kattis/puzzle2.cpp
- uva/137-polygons.cpp
Half-Planes Intersection (Finite Area)
- aizu/1267-how_i_mathematician_wonder_what_you_are.cpp
- codechef/CHN02.cpp
- kattis/artappreciation.cpp
- kattis/domes.cpp
Rectangle-Rectangle Intersection
Simple Polygon Detection
Misc
- aizu/CGL_1_B-reflection.go
- atcoder/B-counterclockwise_rotation.cpp
- atcoder/D-rectangles.cpp
- atcoder/D-レースゲーム.cpp
- codechef/count_the_squares.cpp
- kattis/artur.cpp
- kattis/carpet.cpp
- kattis/cheese_2.cpp
- kattis/convexpolygonarea.cpp
- kattis/countingtriangles.cpp
- kattis/dormroomdivide.cpp
- kattis/money.cpp
- kattis/segmentintersection.cpp
- kattis/undetected.cpp
- leetcode/angle-between-hands-of-a-clock.cpp
- leetcode/angles-of-a-triangle.cpp
- leetcode/count-lattice-points-inside-a-circle.cpp
- leetcode/count-number-of-trapezoids-i.cpp
- leetcode/count-number-of-trapezoids-ii.cpp
- leetcode/find-maximum-area-of-a-triangle.cpp
- leetcode/find-the-minimum-area-to-cover-all-ones-i.cpp
- leetcode/largest-triangle-area.cpp
- leetcode/maximize-the-distance-between-points-on-a-square.cpp
- leetcode/maximum-points-inside-the-square.cpp
- leetcode/minimize-manhattan-distances.cpp
- leetcode/minimum-area-rectangle-ii.cpp
- leetcode/minimum-lines-to-represent-a-line-chart.cpp
- leetcode/minimum-time-visiting-all-points.cpp
- leetcode/number-of-boomerangs.cpp
- leetcode/projection-area-of-3d-shapes.cpp
- leetcode/self-crossing.cpp
- leetcode/surface-area-of-3d-shapes.cpp
- leetcode/valid-boomerang.cpp
- leetcode/valid-square.cpp
- matcomgrader/O-polygon.cpp
- spoj/AXIS-axis_of_symmetry.cpp
- spoj/PIR-pyramids.cpp
- urionlinejudge/1102-deadly_atack.cpp
- urionlinejudge/1124-elevator.cpp
- urionlinejudge/1295-the_closest_pair_problem.cpp
- urionlinejudge/1378-isosceles_triangles.cpp
- urionlinejudge/1455-icpc_finals.cpp
- urionlinejudge/1665-decorate_the_wall.cpp
- urionlinejudge/1991-factory_of_bridges.cpp
- urionlinejudge/2083-on_the_side_of_the_road.cpp
- urionlinejudge/2840-balloon++.cpp
- uva/858-berry_picking.cpp
BFS, DFS
- codeforces/maze_in_bolt.cpp
- kattis/doublets.cpp
- kattis/fontan.cpp
- kattis/keyboard.cpp
- kattis/moneymatters.cpp
- kattis/robotmaze.cpp
- kattis/secretchamber.cpp
- kattis/wheresmywaterfall.cpp
- leetcode/01-matrix.cpp
- leetcode/all-paths-from-source-to-target.cpp
- leetcode/balanced-binary-tree.js
- leetcode/battleships-in-a-board.cpp
- leetcode/binary-tree-level-order-traversal.cpp
- leetcode/binary-tree-right-side-view.cpp
- leetcode/binary-tree-zigzag-level-order-traversal.cpp
- leetcode/bricks-falling-when-hit.cpp
- leetcode/bus-routes.cpp
- leetcode/check-if-there-is-a-valid-path-in-a-grid.cpp
- leetcode/course-schedule-ii.cpp
- leetcode/course-schedule-iv.cpp
- leetcode/course-schedule.cpp
- leetcode/cut-off-trees-for-golf-event.cpp
- leetcode/detonate-the-maximum-bombs.cpp
- leetcode/dungeon-game.cpp
- leetcode/escape-a-large-maze.cpp
- leetcode/escape-the-spreading-fire.cpp
- leetcode/find-all-people-with-secret.cpp
- leetcode/find-if-path-exists-in-graph.cpp
- leetcode/find-subtree-sizes-after-changes.cpp
- leetcode/find-the-safest-path-in-a-grid.cpp
- leetcode/flood-fill.cpp
- leetcode/is-graph-bipartite.cpp
- leetcode/jump-game-iii.cpp
- leetcode/jump-game-iv.cpp
- leetcode/keys-and-rooms.cpp
- leetcode/last-day-where-you-can-still-cross.cpp
- leetcode/longest-increasing-path-in-a-matrix.cpp
- leetcode/making-a-large-island.cpp
- leetcode/map-of-highest-peak.cpp
- leetcode/matrix-cells-in-distance-order.cpp
- leetcode/max-area-of-island.cpp
- leetcode/maximize-amount-after-two-days-of-conversions.cpp
- leetcode/maximize-the-number-of-target-nodes-after-connecting-trees-i.cpp
- leetcode/maximize-the-number-of-target-nodes-after-connecting-trees-ii.cpp
- leetcode/maximum-level-sum-of-a-binary-tree.cpp
- leetcode/minimum-height-trees.cpp
- leetcode/minimum-moves-to-move-a-box-to-their-target-location.cpp
- leetcode/minimum-time-to-collect-all-apples-in-a-tree.cpp
- leetcode/n-ary-tree-level-order-traversal.cpp
- leetcode/number-of-islands.cpp
- leetcode/number-of-provinces.cpp
- leetcode/path-with-minimum-effort.cpp
- leetcode/remove-invalid-parentheses.cpp
- leetcode/same-tree.go
- leetcode/shortest-bridge.cpp
- leetcode/shortest-path-in-a-grid-with-obstacles-elimination.cpp
- leetcode/sliding-puzzle.cpp
- leetcode/strange-printer-ii.cpp
- leetcode/sum-of-left-leaves.cpp
- leetcode/sum-of-root-to-leaf-binary-numbers.cpp
- leetcode/surrounded-regions.cpp
- leetcode/swim-in-rising-water.cpp
- leetcode/symmetric-tree.rs
- leetcode/trapping-rain-water-ii.cpp
- leetcode/unique-paths-iii.cpp
- leetcode/validate-binary-tree-nodes.cpp
- leetcode/water-and-jug-problem.cpp
- leetcode/word-ladder.cpp
- leetcode/word-search.cpp
- spoj/BITMAP-bitmap.cpp
- spoj/BUGLIFE-a_bugs_life.cpp
- spoj/CLEANRBT-cleaning_robot.cpp
- spoj/CTOI09_1-ioi2009_mecho.cpp
- spoj/MAKEMAZE-validate_the_maze.cpp
- urionlinejudge/1082-connected_components.cpp
- urionlinejudge/1100-knight_moves.cpp
- urionlinejudge/3361-cyclists_versus_clouds.cpp
- urionlinejudge/3364-fields_division.cpp
- uva/1103-ancient_messages.cpp
- uva/13011-height_map.cpp
Bipartite Matching, Max Flow, Min-Cut
- codeforces/halting_wolf_dinic.cpp
- codeforces/halting_wolf.cpp
- kattis/bookclub.cpp
- kattis/escapeplan.cpp
- kattis/jupiter.cpp
- kattis/maxflow_dinic.cpp
- kattis/maxflow.cpp
- kattis/mincut.cpp
- kattis/piano.cpp
- urionlinejudge/1299-game_of_tiles.cpp
- urionlinejudge/1362-my_tshirt_suits_me_dinic.cpp
- urionlinejudge/1362-my_tshirt_suits_me.cpp
- urionlinejudge/1490-attacking_rooks.cpp
- urionlinejudge/2014-blood_groups.cpp
- urionlinejudge/2705-keep_it_covered_2.cpp
- urionlinejudge/2705-keep_it_covered_dinic.cpp
- urionlinejudge/2705-keep_it_covered.cpp
- urionlinejudge/3012-algorithm_teaching_hopcroft_karp.cpp
- urionlinejudge/3012-algorithm_teaching.cpp
- uva/10330-power_transmission.cpp
- uva/11167-monkeys_in_the_emei_mountain.cpp
Minimum Cost Flow
Dijkstra
- codeforces/cornering_at_poles_dijkstra.cpp
- kattis/millionairemadness.cpp
- kattis/shortestpath1.cpp
- leetcode/find-a-safe-walk-through-a-grid.cpp
- leetcode/find-the-safest-path-in-a-grid.cpp
- leetcode/minimum-cost-of-a-path-with-special-roads.cpp
- leetcode/minimum-cost-to-make-at-least-one-valid-path-in-a-grid.cpp
- leetcode/minimum-obstacle-removal-to-reach-corner.cpp
- leetcode/network-delay-time.cpp
- leetcode/path-with-maximum-probability.cpp
- urionlinejudge/1370-regatta_of_scientists.cpp
- uva/10986-sending_email.cpp
- uva/11833-route_change.cpp
- uva/13010-galactic_taxes.cpp
Bellman-Ford
Topological Sort
- kattis/artur.cpp
- kattis/pickupsticks.cpp
- leetcode/build-a-matrix-with-conditions.cpp
- leetcode/course-schedule-ii.cpp
- leetcode/minimum-number-of-vertices-to-reach-all-nodes.cpp
Strongly Connected Components (Kosaraju)
Hamiltonian Cycles (Backtracking)
Minimum Dominating Set
Hungarian Algorithm for Assignment Problem
Counting, Combinatorics, Math
- codeforces/impenetrable_wall.cpp
- codeforces/keylogger.cpp
- cses/array_description.cpp
- cses/counting_towers.cpp
- cses/dice_combinations.cpp
- cses/rectangle_cutting.cpp
- kattis/gigcombinatorics.cpp
- kattis/honey.cpp
- kattis/permutationdescent.cpp
- kattis/tritiling.cpp
- leetcode/champagne-tower.cpp
- leetcode/climbing-stairs.rs
- leetcode/concatenated-words.cpp
- leetcode/count-square-submatrices-with-all-ones.cpp
- leetcode/dice-roll-simulation.cpp
- leetcode/distinct-subsequences-ii.cpp
- leetcode/distinct-subsequences.cpp
- leetcode/find-all-possible-stable-binary-arrays-i.cpp
- leetcode/find-the-original-typed-string-ii.cpp
- leetcode/interleaving-string.cpp
- leetcode/knight-dialer.cpp
- leetcode/number-of-dice-rolls-with-target-sum.cpp
- leetcode/number-of-people-aware-of-a-secret.cpp
- leetcode/number-of-ways-of-cutting-a-pizza.cpp
- leetcode/number-of-ways-to-paint-n-3-grid.cpp
- leetcode/number-of-zigzag-arrays-i.cpp
- leetcode/number-of-zigzag-arrays-ii.cpp
- leetcode/painting-a-grid-with-three-different-colors.cpp
- leetcode/pascals-triangle-ii.cpp
- leetcode/pascals-triangle.rs
- leetcode/paths-in-matrix-whose-sum-is-divisible-by-k.cpp
- leetcode/profitable-schemes.cpp
- leetcode/string-transformation.cpp
- leetcode/total-characters-in-string-after-transformations-ii.cpp
- leetcode/unique-paths-ii.cpp
- leetcode/unique-paths.cpp
- leetcode/ways-to-express-an-integer-as-sum-of-powers.cpp
- matcomgrader/H-round_table.cpp
- spoj/BADXOR-bad_xor.cpp
- spoj/HANOI07-building_the_tower.cpp
- urionlinejudge/1319-hyperactive_girl.cpp
- urionlinejudge/1493-disjoint_water_supply.cpp
- urionlinejudge/2009-just_a_bit_sorted.cpp
- urionlinejudge/3017-fabricating_sculptures.cpp
- urionlinejudge/3020-improve_spam.cpp
Maximization, Minimization
- aizu/1164-tighten_up.cpp
- atcoder/A-frog_1.cpp
- atcoder/D-flat_subsequence.cpp
- codeforces/boredom.cpp
- codeforces/domino_principle.cpp
- codeforces/pillars.cpp
- google/controlled_inflation.cpp
- google/moons_and_umbrellas.cpp
- google/plates.cpp
- kattis/3dprinter.go
- kattis/beautifulbridges.cpp
- kattis/centsavings.cpp
- kattis/coke.cpp
- kattis/fancy.cpp
- kattis/intervalcover.cpp
- kattis/narrowartgallery.cpp
- kattis/nikola.cpp
- kattis/speedrun.cpp
- kattis/speedrunning.cpp
- kattis/stol.cpp
- leetcode/best-time-to-buy-and-sell-stock-ii.cpp
- leetcode/best-time-to-buy-and-sell-stock-iii.cpp
- leetcode/best-time-to-buy-and-sell-stock-iv.cpp
- leetcode/burst-balloons.cpp
- leetcode/cherry-pickup.cpp
- leetcode/coin-change.cpp
- leetcode/delete-operation-for-two-strings.cpp
- leetcode/delivering-boxes-from-storage-to-ports.cpp
- leetcode/edit-distance.cpp
- leetcode/extra-characters-in-a-string.cpp
- leetcode/find-the-maximum-length-of-valid-subsequence-ii.cpp
- leetcode/find-the-maximum-number-of-fruits-collected.cpp
- leetcode/find-the-shortest-superstring.cpp
- leetcode/freedom-trail.cpp
- leetcode/greatest-sum-divisible-by-three.cpp
- leetcode/house-robber-iii.cpp
- leetcode/house-robber.cpp
- leetcode/jump-game-ii.cpp
- leetcode/jump-game-v.cpp
- leetcode/jump-game-vi.cpp
- leetcode/length-of-longest-v-shaped-diagonal-segment.cpp
- leetcode/longest-consecutive-sequence.cpp
- leetcode/longest-increasing-path-in-a-matrix.cpp
- leetcode/longest-turbulent-subarray.cpp
- leetcode/max-dot-product-of-two-subsequences.cpp
- leetcode/maximal-square.cpp
- leetcode/maximum-alternating-subsequence-sum.cpp
- leetcode/maximum-amount-of-money-robot-can-earn.cpp
- leetcode/maximum-earnings-from-taxi.cpp
- leetcode/maximum-number-of-jumps-to-reach-the-last-index.cpp
- leetcode/maximum-points-tourist-can-earn.cpp
- leetcode/maximum-profit-from-trading-stocks-with-discounts.cpp
- leetcode/maximum-profit-in-job-scheduling.cpp
- leetcode/maximum-score-from-performing-multiplication-operations.cpp
- leetcode/maximum-walls-destroyed-by-robots.cpp
- leetcode/min-cost-climbing-stairs.cpp
- leetcode/minimum-deletions-to-make-string-balanced.cpp
- leetcode/minimum-distance-to-type-a-word-using-two-fingers.cpp
- leetcode/minimum-number-of-coins-for-fruits.cpp
- leetcode/minimum-number-of-valid-strings-to-form-target-i.cpp
- leetcode/minimum-path-sum.cpp
- leetcode/palindrome-partitioning-ii.cpp
- leetcode/predict-the-winner.cpp
- leetcode/remove-boxes.cpp
- leetcode/split-array-largest-sum.cpp
- leetcode/stickers-to-spell-word.cpp
- leetcode/strange-printer.cpp
- leetcode/string-compression-ii.cpp
- leetcode/triangle.cpp
- spoj/BORW-black_or_white.cpp
- spoj/COINS-bytelandian_gold_coins.cpp
- spoj/KNAPSACK-the_knapsack_problem.cpp
- spoj/MPOLY-polygon.cpp
- spoj/ROCK-sweet_and_sour_rock.cpp
- spoj/THREECOL-threecoloring_of_binary_trees.cpp
- urionlinejudge/1315-not_too_convex_hull_2.cpp
- urionlinejudge/1863-ramsays_counterattack.cpp
- urionlinejudge/2008-exposing_corruption.cpp
- urionlinejudge/2010-keep_it_energized_2.cpp
- urionlinejudge/2010-keep_it_energized.cpp
- urionlinejudge/2665-hipercampo.cpp
- urionlinejudge/3023-leverage_mdt.cpp
- urionlinejudge/3064-elastico.cpp
Longest Increasing Subsequence
- kattis/longincsubseq.cpp
- kattis/signals.cpp
- leetcode/find-the-longest-valid-obstacle-course-at-each-position.cpp
- leetcode/maximum-balanced-subsequence-sum.cpp
- leetcode/russian-doll-envelopes.cpp
Probability, Games, Optimal Strategy
- codeforces/game_of_slots.cpp
- kattis/bachetsgame.cpp
- leetcode/can-i-win.cpp
- leetcode/divisor-game.cpp
- leetcode/frog-jump.cpp
- leetcode/jump-game-vii.cpp
- leetcode/matchsticks-to-square.cpp
- leetcode/odd-even-jump.cpp
- leetcode/predict-the-winner.cpp
- leetcode/regular-expression-matching.cpp
- leetcode/stone-game-ii.cpp
- leetcode/stone-game-iii.cpp
- leetcode/stone-game-iv.cpp
- leetcode/stone-game-v.cpp
- leetcode/stone-game-vii.cpp
- leetcode/stone-game.cpp
- leetcode/wildcard-matching.cpp
- leetcode/word-break.cpp
- spoj/AE2A-dice.cpp
- urionlinejudge/3019-hold_or_continue.cpp
Binary Search
- atcoder/D-flat_subsequence.cpp
- codeforces/domino_principle.cpp
- codeforces/keylogger.cpp
- codeforces/pillars.cpp
- kattis/bridgebuilding.cpp
- kattis/cheese_2.cpp
- kattis/cookiecutter.cpp
- kattis/dormroomdivide.cpp
- kattis/messenger.cpp
- kattis/monk.cpp
- kattis/mountainouslandscape.cpp
- kattis/rangers.cpp
- kattis/signals.cpp
- kattis/speed.cpp
- kattis/stringmultimatching.cpp
- leetcode/3sum-closest.cpp
- leetcode/angles-of-a-triangle.cpp
- leetcode/count-of-range-sum.cpp
- leetcode/data-stream-as-disjoint-intervals.cpp
- leetcode/divide-an-array-into-subarrays-with-minimum-cost-ii.cpp
- leetcode/dungeon-game.cpp
- leetcode/escape-the-spreading-fire.cpp
- leetcode/find-building-where-alice-and-bob-can-meet.cpp
- leetcode/find-first-and-last-position-of-element-in-sorted-array.cpp
- leetcode/find-in-mountain-array.cpp
- leetcode/find-k-th-smallest-pair-distance.cpp
- leetcode/find-minimum-in-rotated-sorted-array-ii.cpp
- leetcode/find-minimum-in-rotated-sorted-array.cpp
- leetcode/find-peak-element.cpp
- leetcode/find-right-interval.cpp
- leetcode/find-smallest-letter-greater-than-target.cpp
- leetcode/first-bad-version.go
- leetcode/guess-number-higher-or-lower.go
- leetcode/koko-eating-bananas.rb
- leetcode/last-day-where-you-can-still-cross.cpp
- leetcode/longest-uploaded-prefix.cpp
- leetcode/magnetic-force-between-two-balls.cpp
- leetcode/maximize-the-distance-between-points-on-a-square.cpp
- leetcode/maximize-the-minimum-powered-city.cpp
- leetcode/maximum-candies-allocated-to-k-children.cpp
- leetcode/maximum-side-length-of-a-square-with-sum-less-than-or-equal-to-threshold.cpp
- leetcode/maximum-tastiness-of-candy-basket.cpp
- leetcode/median-of-two-sorted-arrays.cpp
- leetcode/minimum-initial-energy-to-finish-tasks.cpp
- leetcode/minimum-number-of-days-to-make-m-bouquets.go
- leetcode/minimum-window-substring.cpp
- leetcode/number-of-pairs-satisfying-inequality.cpp
- leetcode/path-with-minimum-effort.cpp
- leetcode/peak-index-in-a-mountain-array.cpp
- leetcode/range-frequency-queries.cpp
- leetcode/reverse-pairs.cpp
- leetcode/search-a-2d-matrix-ii.cpp
- leetcode/search-a-2d-matrix.cpp
- leetcode/search-in-rotated-sorted-array.cpp
- leetcode/search-insert-position.go
- leetcode/separate-squares-i.cpp
- leetcode/single-element-in-a-sorted-array.cpp
- leetcode/sliding-window-median.cpp
- leetcode/sqrtx.go
- leetcode/swim-in-rising-water.cpp
- leetcode/two-furthest-houses-with-different-colors.cpp
- leetcode/two-sum-ii-input-array-is-sorted.cpp
- leetcode/valid-perfect-square.cpp
- spoj/AGGRCOW-aggressive_cows.kt
- spoj/BBIN-busqueda_binaria.cpp
- spoj/BBIN2-busqueda_binaria_2.cpp
- spoj/MATHLOVE-math_is_love.cpp
- spoj/TAP2013F-flowers_of_babylon.cpp
- urionlinejudge/1108-towers_for_mobile_telephony.cpp
- urionlinejudge/1549-splitting_the_coke.cpp
- urionlinejudge/1646-forest.cpp
- urionlinejudge/2010-keep_it_energized_2.cpp
- urionlinejudge/2010-keep_it_energized.cpp
- urionlinejudge/2014-blood_groups.cpp
- urionlinejudge/2104-lasers.cpp
- urionlinejudge/2695-arranging_tiles.cpp
- urionlinejudge/3013-build_the_perfect_house.cpp
- urionlinejudge/3018-gluing_pictures.cpp
- uva/11935-through_the_desert.cpp
Ternary Search
- kattis/asteroids.cpp
- kattis/euclideantsp.cpp
- kattis/messenger.cpp
- urionlinejudge/1294-the_largest_and_smallest_box.cpp
- urionlinejudge/1991-factory_of_bridges.cpp
- urionlinejudge/2015-cake_cut_2.cpp
- urionlinejudge/2517-pogro_challenge.cpp
- uva/13010-galactic_taxes.cpp
Tree Problems
- google/chain_reactions.cpp
- kattis/ceiling.cpp
- kattis/floatingpoints.cpp
- kattis/kitten.cpp
- leetcode/all-elements-in-two-binary-search-trees.cpp
- leetcode/balance-a-binary-search-tree.cpp
- leetcode/balanced-binary-tree.js
- leetcode/binary-search-tree-iterator.cpp
- leetcode/binary-tree-inorder-traversal.go
- leetcode/binary-tree-level-order-traversal.cpp
- leetcode/binary-tree-paths.kt
- leetcode/binary-tree-postorder-traversal.cpp
- leetcode/binary-tree-preorder-traversal.cpp
- leetcode/binary-tree-right-side-view.cpp
- leetcode/binary-tree-zigzag-level-order-traversal.cpp
- leetcode/closest-nodes-queries-in-a-binary-search-tree.cpp
- leetcode/construct-binary-search-tree-from-preorder-traversal.cpp
- leetcode/construct-quad-tree.cpp
- leetcode/convert-sorted-array-to-binary-search-tree.cpp
- leetcode/convert-sorted-list-to-binary-search-tree.cpp
- leetcode/find-duplicate-subtrees.cpp
- leetcode/find-subtree-sizes-after-changes.cpp
- leetcode/flatten-binary-tree-to-linked-list.cpp
- leetcode/house-robber-iii.cpp
- leetcode/insert-into-a-binary-search-tree.cpp
- leetcode/kth-smallest-element-in-a-bst.cpp
- leetcode/lowest-common-ancestor-of-a-binary-tree-2.cpp
- leetcode/lowest-common-ancestor-of-a-binary-tree.cpp
- leetcode/maximize-the-number-of-target-nodes-after-connecting-trees-i.cpp
- leetcode/maximize-the-number-of-target-nodes-after-connecting-trees-ii.cpp
- leetcode/maximum-depth-of-n-ary-tree.cpp
- leetcode/maximum-level-sum-of-a-binary-tree.cpp
- leetcode/maximum-product-of-splitted-binary-tree.cpp
- leetcode/maximum-profit-from-trading-stocks-with-discounts.cpp
- leetcode/minimum-height-trees.cpp
- leetcode/minimum-time-to-collect-all-apples-in-a-tree.cpp
- leetcode/most-frequent-subtree-sum.cpp
- leetcode/n-ary-tree-level-order-traversal.cpp
- leetcode/path-sum-ii.cpp
- leetcode/same-tree.go
- leetcode/search-in-a-binary-search-tree.cpp
- leetcode/sum-of-left-leaves.cpp
- leetcode/sum-of-root-to-leaf-binary-numbers.cpp
- leetcode/symmetric-tree.rs
- leetcode/validate-binary-search-tree.cpp
- leetcode/validate-binary-tree-nodes.cpp
- spoj/PT07Y-is_it_a_tree.cpp
- spoj/PT07Z-longest_path_in_a_tree.cpp
- spoj/THREECOL-threecoloring_of_binary_trees.cpp
- urionlinejudge/1135-ants_colony.cpp
- urionlinejudge/1195-binary_search_tree.cpp
- urionlinejudge/1200-bst_operations_i.cpp
- urionlinejudge/1493-disjoint_water_supply.cpp
- urionlinejudge/3020-improve_spam.cpp
Cycle Detection
- kattis/pickupsticks.cpp
- leetcode/build-a-matrix-with-conditions.cpp
- leetcode/course-schedule-ii.cpp
- leetcode/course-schedule.cpp
- leetcode/happy-number.rs
- leetcode/linked-list-cycle.go
- leetcode/redundant-connection.cpp
- leetcode/strange-printer-ii.cpp
- leetcode/validate-binary-tree-nodes.cpp
Fast Fourier Transform
Union Find (+ Minimum Spanning Tree)
- kattis/almostunionfind.cpp
- kattis/cats.cpp
- kattis/icefloes.cpp
- kattis/islandhopping.cpp
- kattis/rangers.cpp
- kattis/rectilinear.cpp
- kattis/treehouses.cpp
- kattis/undetected.cpp
- kattis/unionfind.cpp
- kattis/wheresmyinternet.cpp
- leetcode/bricks-falling-when-hit.cpp
- leetcode/car-fleet.cpp
- leetcode/check-if-the-rectangle-corner-is-reachable.cpp
- leetcode/count-connected-components-in-lcm-graph.cpp
- leetcode/data-stream-as-disjoint-intervals.cpp
- leetcode/making-a-large-island.cpp
- leetcode/redundant-connection.cpp
- spoj/ANTTT-the_ant.cpp
- urionlinejudge/1152-dark_roads.cpp
- urionlinejudge/1268-mission_impossible.cpp
- urionlinejudge/1298-fix_the_maze.cpp
- urionlinejudge/1468-balloon.cpp
- urionlinejudge/1844-the_deathly_hallows.cpp
- urionlinejudge/3014-cut_inequality_down.cpp
Sparse Table
- kattis/forestofcelery.cpp
- leetcode/jump-game-v.cpp
- spoj/RMQSQ-range_minimum_query_sparse_table.cpp
- urionlinejudge/1496-go_up_the_ultras_sparse_table.cpp
- urionlinejudge/3014-cut_inequality_down_online.cpp
Prefix Sum
- atcoder/G-share_the_ruins_preservation.cpp
- codeforces/keylogger.cpp
- codeforces/new_year_and_cake.cpp
- cses/polynomial_queries.cpp
- kattis/bridgebuilding.cpp
- kattis/centsavings.cpp
- kattis/oldschooldays.cpp
- kattis/queryonarray.cpp
- leetcode/beautiful-towers-ii.cpp
- leetcode/best-time-to-buy-and-sell-stock-iii.cpp
- leetcode/brick-wall.cpp
- leetcode/concatenate-non-zero-digits-and-multiply-by-sum-ii.cpp
- leetcode/count-of-range-sum.cpp
- leetcode/count-submatrices-with-equal-frequency-of-x-and-y.cpp
- leetcode/delivering-boxes-from-storage-to-ports.cpp
- leetcode/equal-sum-grid-partition-i.cpp
- leetcode/equal-sum-grid-partition-ii.cpp
- leetcode/find-polygon-with-the-largest-perimeter.cpp
- leetcode/find-the-original-typed-string-ii.cpp
- leetcode/find-the-pivot-integer.cpp
- leetcode/gas-station.cpp
- leetcode/left-and-right-sum-differences.cpp
- leetcode/longest-subarray-of-1s-after-deleting-one-element.cpp
- leetcode/make-sum-divisible-by-p.cpp
- leetcode/maximum-segment-sum-after-removals.cpp
- leetcode/maximum-side-length-of-a-square-with-sum-less-than-or-equal-to-threshold.cpp
- leetcode/minimum-deletions-to-make-string-balanced.cpp
- leetcode/number-of-ways-of-cutting-a-pizza.cpp
- leetcode/number-of-ways-to-select-buildings.cpp
- leetcode/number-of-ways-to-split-array.cpp
- leetcode/number-of-zigzag-arrays-i.cpp
- leetcode/product-of-array-except-self.cpp
- leetcode/product-of-the-last-k-numbers.cpp
- leetcode/range-sum-query-immutable.go
- leetcode/shifting-letters.cpp
- leetcode/statistics-from-a-large-sample.cpp
- leetcode/stone-game-vii.cpp
- leetcode/sum-of-distances.cpp
- leetcode/trionic-array-ii.cpp
- spoj/CSUMQ-cumulative_sum_query.cpp
- spoj/RANGESUM-range_sum.cpp
- urionlinejudge/2010-keep_it_energized_2.cpp
- urionlinejudge/2010-keep_it_energized.cpp
- urionlinejudge/2015-cake_cut_2.cpp
- urionlinejudge/3014-cut_inequality_down_online.cpp
- uva/10324-zeros_and_ones.cpp
- uva/11833-route_change.cpp
Lowest Common Ancestor
- leetcode/lowest-common-ancestor-of-a-binary-tree-2.cpp
- leetcode/lowest-common-ancestor-of-a-binary-tree.cpp
- matcomgrader/O-polygon.cpp
- urionlinejudge/1135-ants_colony.cpp
Coordinate (or Arrays in General) Compression
- atcoder/I-double_sum.cpp
- codechef/FLYMODE.cpp
- codechef/LAZER.cpp
- codechef/SQUAGAME.cpp
- cses/intersection_points.cpp
- kattis/antimatterrain.cpp
- leetcode/distribute-elements-into-two-arrays-ii.cpp
- leetcode/escape-a-large-maze.cpp
- leetcode/maximum-area-rectangle-with-point-constraints-ii.cpp
- leetcode/maximum-balanced-subsequence-sum.cpp
- leetcode/maximum-profit-in-job-scheduling.cpp
- leetcode/number-of-pairs-satisfying-inequality.cpp
- leetcode/rank-transform-of-an-array.cpp
- leetcode/rectangle-area-ii.cpp
- leetcode/reverse-pairs.cpp
- urionlinejudge/2007-fence_the_vegetables_fail.cpp
- urionlinejudge/2700-fundraising.cpp
Rope
Ordered Set
- kattis/gcpc.cpp
- leetcode/4sum.cpp
- leetcode/best-sightseeing-pair.cpp
- leetcode/block-placement-queries.cpp
- leetcode/contains-duplicate-iii.cpp
- leetcode/count-integers-in-intervals.cpp
- leetcode/data-stream-as-disjoint-intervals.cpp
- leetcode/delivering-boxes-from-storage-to-ports.cpp
- leetcode/design-task-manager.cpp
- leetcode/falling-squares.cpp
- leetcode/find-k-closest-elements.cpp
- leetcode/find-right-interval.cpp
- leetcode/find-score-of-an-array-after-marking-all-elements.cpp
- leetcode/find-the-number-of-ways-to-place-people-i.cpp
- leetcode/find-x-sum-of-all-k-long-subarrays-ii.cpp
- leetcode/gas-station.cpp
- leetcode/intersection-of-two-arrays.cpp
- leetcode/jump-game-vii.cpp
- leetcode/maximum-number-of-eaten-apples.cpp
- leetcode/maximum-segment-sum-after-removals.cpp
- leetcode/maximum-swap.cpp
- leetcode/minimum-area-rectangle-ii.cpp
- leetcode/minimum-interval-to-include-each-query.cpp
- leetcode/minimum-operations-to-make-array-values-equal-to-k.cpp
- leetcode/minimum-pair-removal-to-sort-array-ii.cpp
- leetcode/move-pieces-to-obtain-a-string.cpp
- leetcode/my-calendar-i.cpp
- leetcode/next-greater-element-iii.cpp
- leetcode/odd-even-jump.cpp
- leetcode/perfect-rectangle.cpp
- leetcode/rectangle-area-ii-2.cpp
- leetcode/self-crossing.cpp
- leetcode/sliding-window-maximum.cpp
- leetcode/the-skyline-problem.cpp
- leetcode/walking-robot-simulation.cpp
- urionlinejudge/3359-ancient_towers_2.cpp
Fast Exponentiation, Fast Fibonacci, Etc
- leetcode/count-collisions-of-monkeys-on-a-polygon.cpp
- leetcode/knight-dialer.cpp
- leetcode/number-of-zigzag-arrays-ii.cpp
- leetcode/string-transformation.cpp
- leetcode/total-characters-in-string-after-transformations-ii.cpp
- spoj/MPOW-power_of_matrix.cpp
- urionlinejudge/1151-easy_fibonacci.cpp
- urionlinejudge/1969-generations.cpp
Modular Division
- codechef/CNVX4HUL.cpp
- codeforces/cqxym_count_permutations.cpp
- kattis/chineseremainder.rb
- leetcode/fancy-sequence.cpp
- matcomgrader/H-round_table.cpp
Simpson's Integration
Kadane's Algorithm (Maximum Subarray Problem)
Meet in the Middle
Game Theory
Linear Algebra
- leetcode/fancy-sequence.cpp
- leetcode/knight-dialer.cpp
- leetcode/number-of-zigzag-arrays-ii.cpp
- leetcode/string-transformation.cpp
- leetcode/total-characters-in-string-after-transformations-ii.cpp
One-Dimensional Sweep Line (Events, Intervals)
- leetcode/car-pooling.cpp
- leetcode/describe-the-painting.cpp
- leetcode/interval-list-intersections.cpp
- leetcode/maximum-number-of-events-that-can-be-attended.cpp
- leetcode/maximum-population-year.cpp
- leetcode/merge-intervals.cpp
- leetcode/minimum-interval-to-include-each-query.cpp
- leetcode/minimum-number-of-arrows-to-burst-balloons.cpp
- leetcode/number-of-flowers-in-full-bloom.cpp
- leetcode/remove-covered-intervals.cpp
- leetcode/self-crossing.cpp
- leetcode/trapping-rain-water.cpp
- leetcode/two-best-non-overlapping-events.cpp
Monotonic Stack, Monotonic Deque
- codeforces/beautiful_mountains.cpp
- kattis/bridgebuilding.cpp
- leetcode/132-pattern.cpp
- leetcode/beautiful-towers-ii.cpp
- leetcode/daily-temperatures.cpp
- leetcode/final-prices-with-a-special-discount-in-a-shop.cpp
- leetcode/jump-game-vi.cpp
- leetcode/longest-continuous-subarray-with-absolute-diff-less-than-or-equal-to-limit.cpp
- leetcode/max-chunks-to-make-sorted-ii.cpp
- leetcode/maximal-rectangle.cpp
- leetcode/maximum-width-ramp.cpp
- leetcode/minimum-number-of-coins-for-fruits.cpp
- leetcode/next-greater-element-i.cpp
- leetcode/next-greater-element-ii.cpp
- leetcode/number-of-visible-people-in-a-queue.cpp
- leetcode/online-stock-span.cpp
Heap (Priority Queue)
- leetcode/avoid-flood-in-the-city.cpp
- leetcode/course-schedule-iii.cpp
- leetcode/remove-covered-intervals.cpp
- leetcode/sort-matrix-by-diagonals.cpp
Backtracking
Linked List
Concurrency (Mutexes, Semaphores, Threads)