Greedy Algorithms for Interval Problems: Non-overlapping Intervals, Partition Labels, and Merging Ranges
Remove Minimum Intervals to Eliminate Overlaps
Given a list of intervals, determine the minimum number of intervals to remove so that the remaining ones do not overlap. Adjacent intervals like [1,2] and [2,3] are not considered overlapping.
A greedy approach works by sorting intervals by their end points. After sorting, iterate through the list ...
Posted on Wed, 21 Oct 2026 16:22:22 +0000 by Dark[NSF]
Algorithm Enhancement — Summary of LeetCode Weekly Contest 386
Problems
Data Partitioning
Given an integer array nums of even length, split it into two arrays nums1 and nums2, such that:
nums1.length == nums2.length == nums.length / 2
Both nums1 and nums2 contain unique elements.
Return true if the array can be partitioned in this way, otherwise return false.
Approach
Use a hash map to count occurrences ...
Posted on Wed, 21 Oct 2026 16:10:34 +0000 by Viper_4
AtCoder ABC285 Contest Solutions and Analysis
Problem A: Parent Node Verification
Problem Statement:
Given a specific tree structure, you need to determine if node a is the parent of node b. Both nodes are numbered between 1 and 15.
Solution Approach:
The tree follows a simple binary structure where: - The left child of any node n has the value n * 2- The right child of any node n has the ...
Posted on Wed, 21 Oct 2026 16:05:53 +0000 by Goofan
Finding the Maximum Sum Submatrix Using Prefix Sums and Kadane's Algorithm
Given an N x N matrix of integers, compute the maximum sum of any non-empty submatrix. This problem can be efficiently solved by extending the one-dimensional maximum subarray problem (Kadane's algorithm) to two dimensions using prefix sums.
First, precompute a prefix sum array prefixSum where prefixSum[i][j] stores the cumulative sum of elemen ...
Posted on Tue, 20 Oct 2026 16:25:09 +0000 by nova912
Detecting Non-Consecutive Duplicate Characters in Task Sequences
The problem requires determining if a sequence of tasks, represented by uppercase letters, violates a specific constraint: once a task is abandoned for a different one, it cannot be resumed. In terms of the string representation, this means no character can reappear after a different character has been encountered.ApproachA straightforward meth ...
Posted on Tue, 20 Oct 2026 16:04:33 +0000 by dannyz
Solving the Card Shuffling Algorithm Problem
Problem Description
Given a deck of cards numbered from 1 to n, repeatedly perform the following operations until no cards remain:
Take the top card and place it on the table
Take the next top card and move it to the bottom of the deck
The goal is to determine the initial arrangement of the deck so that the cards placed on the table appear in ...
Posted on Sun, 18 Oct 2026 16:21:36 +0000 by costamesakid
Fundamentals of Stacks and Queues: Core Data Structures for Efficient Data Management
Stacks and Queues
Stacks and queues are fundamental linear data structures used for organizing and managing data in computer science. They provide specific ways to add and remove elements, which makes them suitable for a variety of applications.
Stack
A stack is a linear data structure that follows the Last-In, First-Out (LIFO) principle. This ...
Posted on Sat, 17 Oct 2026 16:45:47 +0000 by kmarsh
Implementing Queue with Stacks and Stack with Queues
Implementing a Queue Using Two Stacks
A queue follows FIFO (First-In-First-Out), while a stack follows LIFO (Last-In-First-Out). To simulate queue behavior using stacks, two stacks are used: one for input (inStack) and one for output (outStack).
Push: Elements are always pushed onto inStack.
Pop/Peek: If outStack is empty, all elements from in ...
Posted on Fri, 16 Oct 2026 16:00:20 +0000 by mosherben
Snowflake: A Distributed ID Generation Algorithm
1. Introduction
Snowflake is an open-source distributed ID generation algorithm from Twitter.
Core idea: Use a 64-bit long integer as a globally unique ID.
2. Structure
0 - 0001000000 0000010000 0001000100 0000100000 0 - 10001 - 11001 - 000000000000
2.1 Part 1: 1 bit
1 bit, unused.
Reason: If the first bit were 1, the number would be negat ...
Posted on Thu, 15 Oct 2026 16:57:41 +0000 by ccb
Dynamic Programming Solutions for Word Break and House Robber Problems
Word Break Problem
Given a string s and a ditcionary wordDict, determine if s can be segmented into space-sepaarted words from the dictionary.
Backtracking with Memoization
bool canSegment(const string& s, const unordered_set<string>& dict, vector<int>& memo, int pos) {
if(pos >= s.size()) return true;
if(memo ...
Posted on Thu, 15 Oct 2026 16:47:07 +0000 by _Alex_