Latest commit

History

70 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LeetCode C++ Solutions Repository

A collection of LeetCode algorithm problem solutions implemented in modern C++. This repository serves as a learning platform to help me become a master of C++ and DSA through systematic problem-solving.

🎯 Purpose

This repository is designed for:

  • Learning and mastering DSA concepts through practical problem-solving
  • Improving C++ programming skills using modern features when beneficial
  • Building comprehensive knowledge of algorithms and data structures
  • Systematic learning to become a C++ and DSA master

πŸš€ Modern C++ Features

This repository uses modern C++ features to write clean, efficient, and maintainable solutions:

  • Modern algorithms - Range-based algorithms and efficient data processing
  • Smart containers - Appropriate data structures for each problem
  • Error handling - Robust and safe code practices
  • Advanced concepts - Templates, concepts, and compile-time features
  • Performance optimization - Move semantics, perfect forwarding, and efficient code

πŸ“š Problems Solved

🎯 Array & Hashing

Key Patterns:

  • Hash Map/Set: Two Sum, Contains Duplicate, Valid Anagram, Group Anagrams
  • Array Manipulation: Product of Array Except Self, Longest Consecutive Sequence
  • String Processing: Valid Anagram, Group Anagrams, Encode and Decode Strings
  • Matrix/2D Arrays: Valid Sudoku
  • Frequency Counting: Top K Frequent Elements, Valid Anagram, Group Anagrams

Problems:

Problems:

🎯 Sliding Window

Key Patterns:

  • Fixed Size Window: Analyze subarrays of fixed length k
  • Variable Size Window: Expand/shrink window based on constraints
  • Hash Map + Sliding Window: Track frequency/indices within window

Problems:

🎯 Stack

Key Patterns:

  • LIFO Operations: Valid Parentheses, Min Stack, Evaluate Reverse Polish Notation
  • Monotonic Stack: Daily Temperatures, Largest Rectangle in Histogram
  • Expression Evaluation: Evaluate Reverse Polish Notation
  • Nested Structure Processing: Valid Parentheses, Generate Parentheses
  • Auxiliary Stack: Min Stack (tracking minimum), Car Fleet (tracking time)

Problems:

πŸ› οΈ Development Setup

Simple Compilation

For basic testing, you can compile individual solutions:

# Navigate to problem directorycd"src/1. Two Sum"# Compile with C++23
g++ -std=c++23 -O2 main.cpp -o solution
# or
clang++ -std=c++23 -O2 main.cpp -o solution
# Run
./solution

Compiler Requirements

  • GCC: Version 13+ with -std=c++23
  • Clang: Version 17+ with -std=c++23
  • MSVC: Version 19.35+ with /std:c++23

πŸ“ Contributing

  1. Fork the repository
  2. Create a new branch for your solution
  3. Add your solution in the appropriate problem directory
  4. Follow the existing naming convention: Problem Number. Problem Name/
  5. Submit a pull request

Solution Guidelines

  • Use C++23 standard - Leverage modern features when beneficial
  • Write clear, readable code with proper comments
  • Include problem description in comments
  • Follow C++23 best practices - RAII, smart pointers, constexpr
  • Test solutions with multiple test cases
  • Include time and space complexity analysis
  • Document C++23 features used in your solution

🧠 Learning Approach

Comprehensive Documentation System

  • Problem-Specific Learning: Each problem includes detailed README with multiple approaches
  • C++ Mastery: Extensive C++ documentation covering fundamentals to advanced topics
  • DSA Foundation: Complete data structures and algorithms reference
  • Pattern Recognition: Common algorithmic patterns and when to use them
  • Progressive Learning: Structured roadmap from basics to advanced concepts

Knowledge Building Strategy

  • Theory + Practice: Combine conceptual understanding with hands-on coding
  • Multiple Solutions: Learn different approaches to the same problem
  • Modern C++: Use latest C++23 features for efficient and clean code
  • Systematic Progress: Track learning through comprehensive documentation
  • Mastery Focus: Deep understanding over quick solutions

πŸ“Š Progress Tracking

Quick Stats

  • Total Problems: 30
  • Categories: Array & Hashing, Binary Search, Two Pointers, Sliding Window, Stack
  • Easy: 8 | Medium: 19 | Hard: 3

C++23 Features Used

  • STL Containers: std::unordered_map, std::unordered_set, std::priority_queue, std::vector, std::string, std::stack
  • STL Algorithms: std::sort, std::transform, std::accumulate, std::ranges, std::is_sorted, std::max_element
  • Modern C++: std::ranges, std::views, std::format, auto keyword, structured bindings, constexpr, std::tuple
  • Two Pointers: Efficient array traversal, sliding window techniques, greedy algorithms
  • Stack Operations: LIFO data structure, monotonic stack patterns, expression evaluation, nested structure processing

πŸ“– Learning Resources

Repository Documentation

External Resources

πŸ“„ License

This project is open source and available under the MIT License.

🀝 Acknowledgments

  • ISO C++ Committee for C++23 standard
  • LeetCode for providing excellent algorithmic problems
  • The C++ community for continuous improvements to the language
  • All contributors who help improve this repository

Happy Learning! πŸš€βœ¨

This repository is designed for comprehensive learning and mastery building, focusing on DSA concepts and modern C++ programming.

About

πŸ’‘ Collection of LeetCode solutions in modern C++ for practicing data structures and algorithms.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

70 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LeetCode C++ Solutions Repository

A collection of LeetCode algorithm problem solutions implemented in modern C++. This repository serves as a learning platform to help me become a master of C++ and DSA through systematic problem-solving.

🎯 Purpose

This repository is designed for:

  • Learning and mastering DSA concepts through practical problem-solving
  • Improving C++ programming skills using modern features when beneficial
  • Building comprehensive knowledge of algorithms and data structures
  • Systematic learning to become a C++ and DSA master

πŸš€ Modern C++ Features

This repository uses modern C++ features to write clean, efficient, and maintainable solutions:

  • Modern algorithms - Range-based algorithms and efficient data processing
  • Smart containers - Appropriate data structures for each problem
  • Error handling - Robust and safe code practices
  • Advanced concepts - Templates, concepts, and compile-time features
  • Performance optimization - Move semantics, perfect forwarding, and efficient code

πŸ“š Problems Solved

🎯 Array & Hashing

Key Patterns:

  • Hash Map/Set: Two Sum, Contains Duplicate, Valid Anagram, Group Anagrams
  • Array Manipulation: Product of Array Except Self, Longest Consecutive Sequence
  • String Processing: Valid Anagram, Group Anagrams, Encode and Decode Strings
  • Matrix/2D Arrays: Valid Sudoku
  • Frequency Counting: Top K Frequent Elements, Valid Anagram, Group Anagrams

Problems:

Problems:

🎯 Sliding Window

Key Patterns:

  • Fixed Size Window: Analyze subarrays of fixed length k
  • Variable Size Window: Expand/shrink window based on constraints
  • Hash Map + Sliding Window: Track frequency/indices within window

Problems:

🎯 Stack

Key Patterns:

  • LIFO Operations: Valid Parentheses, Min Stack, Evaluate Reverse Polish Notation
  • Monotonic Stack: Daily Temperatures, Largest Rectangle in Histogram
  • Expression Evaluation: Evaluate Reverse Polish Notation
  • Nested Structure Processing: Valid Parentheses, Generate Parentheses
  • Auxiliary Stack: Min Stack (tracking minimum), Car Fleet (tracking time)

Problems:

πŸ› οΈ Development Setup

Simple Compilation

For basic testing, you can compile individual solutions:

# Navigate to problem directorycd"src/1. Two Sum"# Compile with C++23
g++ -std=c++23 -O2 main.cpp -o solution
# or
clang++ -std=c++23 -O2 main.cpp -o solution
# Run
./solution

Compiler Requirements

  • GCC: Version 13+ with -std=c++23
  • Clang: Version 17+ with -std=c++23
  • MSVC: Version 19.35+ with /std:c++23

πŸ“ Contributing

  1. Fork the repository
  2. Create a new branch for your solution
  3. Add your solution in the appropriate problem directory
  4. Follow the existing naming convention: Problem Number. Problem Name/
  5. Submit a pull request

Solution Guidelines

  • Use C++23 standard - Leverage modern features when beneficial
  • Write clear, readable code with proper comments
  • Include problem description in comments
  • Follow C++23 best practices - RAII, smart pointers, constexpr
  • Test solutions with multiple test cases
  • Include time and space complexity analysis
  • Document C++23 features used in your solution

🧠 Learning Approach

Comprehensive Documentation System

  • Problem-Specific Learning: Each problem includes detailed README with multiple approaches
  • C++ Mastery: Extensive C++ documentation covering fundamentals to advanced topics
  • DSA Foundation: Complete data structures and algorithms reference
  • Pattern Recognition: Common algorithmic patterns and when to use them
  • Progressive Learning: Structured roadmap from basics to advanced concepts

Knowledge Building Strategy

  • Theory + Practice: Combine conceptual understanding with hands-on coding
  • Multiple Solutions: Learn different approaches to the same problem
  • Modern C++: Use latest C++23 features for efficient and clean code
  • Systematic Progress: Track learning through comprehensive documentation
  • Mastery Focus: Deep understanding over quick solutions

πŸ“Š Progress Tracking

Quick Stats

  • Total Problems: 30
  • Categories: Array & Hashing, Binary Search, Two Pointers, Sliding Window, Stack
  • Easy: 8 | Medium: 19 | Hard: 3

C++23 Features Used

  • STL Containers: std::unordered_map, std::unordered_set, std::priority_queue, std::vector, std::string, std::stack
  • STL Algorithms: std::sort, std::transform, std::accumulate, std::ranges, std::is_sorted, std::max_element
  • Modern C++: std::ranges, std::views, std::format, auto keyword, structured bindings, constexpr, std::tuple
  • Two Pointers: Efficient array traversal, sliding window techniques, greedy algorithms
  • Stack Operations: LIFO data structure, monotonic stack patterns, expression evaluation, nested structure processing

πŸ“– Learning Resources

Repository Documentation

External Resources

πŸ“„ License

This project is open source and available under the MIT License.

🀝 Acknowledgments

  • ISO C++ Committee for C++23 standard
  • LeetCode for providing excellent algorithmic problems
  • The C++ community for continuous improvements to the language
  • All contributors who help improve this repository

Happy Learning! πŸš€βœ¨

This repository is designed for comprehensive learning and mastery building, focusing on DSA concepts and modern C++ programming.

About

πŸ’‘ Collection of LeetCode solutions in modern C++ for practicing data structures and algorithms.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

70 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LeetCode C++ Solutions Repository

A collection of LeetCode algorithm problem solutions implemented in modern C++. This repository serves as a learning platform to help me become a master of C++ and DSA through systematic problem-solving.

🎯 Purpose

This repository is designed for:

  • Learning and mastering DSA concepts through practical problem-solving
  • Improving C++ programming skills using modern features when beneficial
  • Building comprehensive knowledge of algorithms and data structures
  • Systematic learning to become a C++ and DSA master

πŸš€ Modern C++ Features

This repository uses modern C++ features to write clean, efficient, and maintainable solutions:

  • Modern algorithms - Range-based algorithms and efficient data processing
  • Smart containers - Appropriate data structures for each problem
  • Error handling - Robust and safe code practices
  • Advanced concepts - Templates, concepts, and compile-time features
  • Performance optimization - Move semantics, perfect forwarding, and efficient code

πŸ“š Problems Solved

🎯 Array & Hashing

Key Patterns:

  • Hash Map/Set: Two Sum, Contains Duplicate, Valid Anagram, Group Anagrams
  • Array Manipulation: Product of Array Except Self, Longest Consecutive Sequence
  • String Processing: Valid Anagram, Group Anagrams, Encode and Decode Strings
  • Matrix/2D Arrays: Valid Sudoku
  • Frequency Counting: Top K Frequent Elements, Valid Anagram, Group Anagrams

Problems:

Problems:

🎯 Sliding Window

Key Patterns:

  • Fixed Size Window: Analyze subarrays of fixed length k
  • Variable Size Window: Expand/shrink window based on constraints
  • Hash Map + Sliding Window: Track frequency/indices within window

Problems:

🎯 Stack

Key Patterns:

  • LIFO Operations: Valid Parentheses, Min Stack, Evaluate Reverse Polish Notation
  • Monotonic Stack: Daily Temperatures, Largest Rectangle in Histogram
  • Expression Evaluation: Evaluate Reverse Polish Notation
  • Nested Structure Processing: Valid Parentheses, Generate Parentheses
  • Auxiliary Stack: Min Stack (tracking minimum), Car Fleet (tracking time)

Problems:

πŸ› οΈ Development Setup

Simple Compilation

For basic testing, you can compile individual solutions:

# Navigate to problem directorycd"src/1. Two Sum"# Compile with C++23
g++ -std=c++23 -O2 main.cpp -o solution
# or
clang++ -std=c++23 -O2 main.cpp -o solution
# Run
./solution

Compiler Requirements

  • GCC: Version 13+ with -std=c++23
  • Clang: Version 17+ with -std=c++23
  • MSVC: Version 19.35+ with /std:c++23

πŸ“ Contributing

  1. Fork the repository
  2. Create a new branch for your solution
  3. Add your solution in the appropriate problem directory
  4. Follow the existing naming convention: Problem Number. Problem Name/
  5. Submit a pull request

Solution Guidelines

  • Use C++23 standard - Leverage modern features when beneficial
  • Write clear, readable code with proper comments
  • Include problem description in comments
  • Follow C++23 best practices - RAII, smart pointers, constexpr
  • Test solutions with multiple test cases
  • Include time and space complexity analysis
  • Document C++23 features used in your solution

🧠 Learning Approach

Comprehensive Documentation System

  • Problem-Specific Learning: Each problem includes detailed README with multiple approaches
  • C++ Mastery: Extensive C++ documentation covering fundamentals to advanced topics
  • DSA Foundation: Complete data structures and algorithms reference
  • Pattern Recognition: Common algorithmic patterns and when to use them
  • Progressive Learning: Structured roadmap from basics to advanced concepts

Knowledge Building Strategy

  • Theory + Practice: Combine conceptual understanding with hands-on coding
  • Multiple Solutions: Learn different approaches to the same problem
  • Modern C++: Use latest C++23 features for efficient and clean code
  • Systematic Progress: Track learning through comprehensive documentation
  • Mastery Focus: Deep understanding over quick solutions

πŸ“Š Progress Tracking

Quick Stats

  • Total Problems: 30
  • Categories: Array & Hashing, Binary Search, Two Pointers, Sliding Window, Stack
  • Easy: 8 | Medium: 19 | Hard: 3

C++23 Features Used

  • STL Containers: std::unordered_map, std::unordered_set, std::priority_queue, std::vector, std::string, std::stack
  • STL Algorithms: std::sort, std::transform, std::accumulate, std::ranges, std::is_sorted, std::max_element
  • Modern C++: std::ranges, std::views, std::format, auto keyword, structured bindings, constexpr, std::tuple
  • Two Pointers: Efficient array traversal, sliding window techniques, greedy algorithms
  • Stack Operations: LIFO data structure, monotonic stack patterns, expression evaluation, nested structure processing

πŸ“– Learning Resources

Repository Documentation

External Resources

πŸ“„ License

This project is open source and available under the MIT License.

🀝 Acknowledgments

  • ISO C++ Committee for C++23 standard
  • LeetCode for providing excellent algorithmic problems
  • The C++ community for continuous improvements to the language
  • All contributors who help improve this repository

Happy Learning! πŸš€βœ¨

This repository is designed for comprehensive learning and mastery building, focusing on DSA concepts and modern C++ programming.

About

πŸ’‘ Collection of LeetCode solutions in modern C++ for practicing data structures and algorithms.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

70 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LeetCode C++ Solutions Repository

A collection of LeetCode algorithm problem solutions implemented in modern C++. This repository serves as a learning platform to help me become a master of C++ and DSA through systematic problem-solving.

🎯 Purpose

This repository is designed for:

  • Learning and mastering DSA concepts through practical problem-solving
  • Improving C++ programming skills using modern features when beneficial
  • Building comprehensive knowledge of algorithms and data structures
  • Systematic learning to become a C++ and DSA master

πŸš€ Modern C++ Features

This repository uses modern C++ features to write clean, efficient, and maintainable solutions:

  • Modern algorithms - Range-based algorithms and efficient data processing
  • Smart containers - Appropriate data structures for each problem
  • Error handling - Robust and safe code practices
  • Advanced concepts - Templates, concepts, and compile-time features
  • Performance optimization - Move semantics, perfect forwarding, and efficient code

πŸ“š Problems Solved

🎯 Array & Hashing

Key Patterns:

  • Hash Map/Set: Two Sum, Contains Duplicate, Valid Anagram, Group Anagrams
  • Array Manipulation: Product of Array Except Self, Longest Consecutive Sequence
  • String Processing: Valid Anagram, Group Anagrams, Encode and Decode Strings
  • Matrix/2D Arrays: Valid Sudoku
  • Frequency Counting: Top K Frequent Elements, Valid Anagram, Group Anagrams

Problems:

Problems:

🎯 Sliding Window

Key Patterns:

  • Fixed Size Window: Analyze subarrays of fixed length k
  • Variable Size Window: Expand/shrink window based on constraints
  • Hash Map + Sliding Window: Track frequency/indices within window

Problems:

🎯 Stack

Key Patterns:

  • LIFO Operations: Valid Parentheses, Min Stack, Evaluate Reverse Polish Notation
  • Monotonic Stack: Daily Temperatures, Largest Rectangle in Histogram
  • Expression Evaluation: Evaluate Reverse Polish Notation
  • Nested Structure Processing: Valid Parentheses, Generate Parentheses
  • Auxiliary Stack: Min Stack (tracking minimum), Car Fleet (tracking time)

Problems:

πŸ› οΈ Development Setup

Simple Compilation

For basic testing, you can compile individual solutions:

# Navigate to problem directorycd"src/1. Two Sum"# Compile with C++23
g++ -std=c++23 -O2 main.cpp -o solution
# or
clang++ -std=c++23 -O2 main.cpp -o solution
# Run
./solution

Compiler Requirements

  • GCC: Version 13+ with -std=c++23
  • Clang: Version 17+ with -std=c++23
  • MSVC: Version 19.35+ with /std:c++23

πŸ“ Contributing

  1. Fork the repository
  2. Create a new branch for your solution
  3. Add your solution in the appropriate problem directory
  4. Follow the existing naming convention: Problem Number. Problem Name/
  5. Submit a pull request

Solution Guidelines

  • Use C++23 standard - Leverage modern features when beneficial
  • Write clear, readable code with proper comments
  • Include problem description in comments
  • Follow C++23 best practices - RAII, smart pointers, constexpr
  • Test solutions with multiple test cases
  • Include time and space complexity analysis
  • Document C++23 features used in your solution

🧠 Learning Approach

Comprehensive Documentation System

  • Problem-Specific Learning: Each problem includes detailed README with multiple approaches
  • C++ Mastery: Extensive C++ documentation covering fundamentals to advanced topics
  • DSA Foundation: Complete data structures and algorithms reference
  • Pattern Recognition: Common algorithmic patterns and when to use them
  • Progressive Learning: Structured roadmap from basics to advanced concepts

Knowledge Building Strategy

  • Theory + Practice: Combine conceptual understanding with hands-on coding
  • Multiple Solutions: Learn different approaches to the same problem
  • Modern C++: Use latest C++23 features for efficient and clean code
  • Systematic Progress: Track learning through comprehensive documentation
  • Mastery Focus: Deep understanding over quick solutions

πŸ“Š Progress Tracking

Quick Stats

  • Total Problems: 30
  • Categories: Array & Hashing, Binary Search, Two Pointers, Sliding Window, Stack
  • Easy: 8 | Medium: 19 | Hard: 3

C++23 Features Used

  • STL Containers: std::unordered_map, std::unordered_set, std::priority_queue, std::vector, std::string, std::stack
  • STL Algorithms: std::sort, std::transform, std::accumulate, std::ranges, std::is_sorted, std::max_element
  • Modern C++: std::ranges, std::views, std::format, auto keyword, structured bindings, constexpr, std::tuple
  • Two Pointers: Efficient array traversal, sliding window techniques, greedy algorithms
  • Stack Operations: LIFO data structure, monotonic stack patterns, expression evaluation, nested structure processing

πŸ“– Learning Resources

Repository Documentation

External Resources

πŸ“„ License

This project is open source and available under the MIT License.

🀝 Acknowledgments

  • ISO C++ Committee for C++23 standard
  • LeetCode for providing excellent algorithmic problems
  • The C++ community for continuous improvements to the language
  • All contributors who help improve this repository

Happy Learning! πŸš€βœ¨

This repository is designed for comprehensive learning and mastery building, focusing on DSA concepts and modern C++ programming.

About

πŸ’‘ Collection of LeetCode solutions in modern C++ for practicing data structures and algorithms.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

70 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LeetCode C++ Solutions Repository

A collection of LeetCode algorithm problem solutions implemented in modern C++. This repository serves as a learning platform to help me become a master of C++ and DSA through systematic problem-solving.

🎯 Purpose

This repository is designed for:

  • Learning and mastering DSA concepts through practical problem-solving
  • Improving C++ programming skills using modern features when beneficial
  • Building comprehensive knowledge of algorithms and data structures
  • Systematic learning to become a C++ and DSA master

πŸš€ Modern C++ Features

This repository uses modern C++ features to write clean, efficient, and maintainable solutions:

  • Modern algorithms - Range-based algorithms and efficient data processing
  • Smart containers - Appropriate data structures for each problem
  • Error handling - Robust and safe code practices
  • Advanced concepts - Templates, concepts, and compile-time features
  • Performance optimization - Move semantics, perfect forwarding, and efficient code

πŸ“š Problems Solved

🎯 Array & Hashing

Key Patterns:

  • Hash Map/Set: Two Sum, Contains Duplicate, Valid Anagram, Group Anagrams
  • Array Manipulation: Product of Array Except Self, Longest Consecutive Sequence
  • String Processing: Valid Anagram, Group Anagrams, Encode and Decode Strings
  • Matrix/2D Arrays: Valid Sudoku
  • Frequency Counting: Top K Frequent Elements, Valid Anagram, Group Anagrams

Problems:

Problems:

🎯 Sliding Window

Key Patterns:

  • Fixed Size Window: Analyze subarrays of fixed length k
  • Variable Size Window: Expand/shrink window based on constraints
  • Hash Map + Sliding Window: Track frequency/indices within window

Problems:

🎯 Stack

Key Patterns:

  • LIFO Operations: Valid Parentheses, Min Stack, Evaluate Reverse Polish Notation
  • Monotonic Stack: Daily Temperatures, Largest Rectangle in Histogram
  • Expression Evaluation: Evaluate Reverse Polish Notation
  • Nested Structure Processing: Valid Parentheses, Generate Parentheses
  • Auxiliary Stack: Min Stack (tracking minimum), Car Fleet (tracking time)

Problems:

πŸ› οΈ Development Setup

Simple Compilation

For basic testing, you can compile individual solutions:

# Navigate to problem directorycd"src/1. Two Sum"# Compile with C++23
g++ -std=c++23 -O2 main.cpp -o solution
# or
clang++ -std=c++23 -O2 main.cpp -o solution
# Run
./solution

Compiler Requirements

  • GCC: Version 13+ with -std=c++23
  • Clang: Version 17+ with -std=c++23
  • MSVC: Version 19.35+ with /std:c++23

πŸ“ Contributing

  1. Fork the repository
  2. Create a new branch for your solution
  3. Add your solution in the appropriate problem directory
  4. Follow the existing naming convention: Problem Number. Problem Name/
  5. Submit a pull request

Solution Guidelines

  • Use C++23 standard - Leverage modern features when beneficial
  • Write clear, readable code with proper comments
  • Include problem description in comments
  • Follow C++23 best practices - RAII, smart pointers, constexpr
  • Test solutions with multiple test cases
  • Include time and space complexity analysis
  • Document C++23 features used in your solution

🧠 Learning Approach

Comprehensive Documentation System

  • Problem-Specific Learning: Each problem includes detailed README with multiple approaches
  • C++ Mastery: Extensive C++ documentation covering fundamentals to advanced topics
  • DSA Foundation: Complete data structures and algorithms reference
  • Pattern Recognition: Common algorithmic patterns and when to use them
  • Progressive Learning: Structured roadmap from basics to advanced concepts

Knowledge Building Strategy

  • Theory + Practice: Combine conceptual understanding with hands-on coding
  • Multiple Solutions: Learn different approaches to the same problem
  • Modern C++: Use latest C++23 features for efficient and clean code
  • Systematic Progress: Track learning through comprehensive documentation
  • Mastery Focus: Deep understanding over quick solutions

πŸ“Š Progress Tracking

Quick Stats

  • Total Problems: 30
  • Categories: Array & Hashing, Binary Search, Two Pointers, Sliding Window, Stack
  • Easy: 8 | Medium: 19 | Hard: 3

C++23 Features Used

  • STL Containers: std::unordered_map, std::unordered_set, std::priority_queue, std::vector, std::string, std::stack
  • STL Algorithms: std::sort, std::transform, std::accumulate, std::ranges, std::is_sorted, std::max_element
  • Modern C++: std::ranges, std::views, std::format, auto keyword, structured bindings, constexpr, std::tuple
  • Two Pointers: Efficient array traversal, sliding window techniques, greedy algorithms
  • Stack Operations: LIFO data structure, monotonic stack patterns, expression evaluation, nested structure processing

πŸ“– Learning Resources

Repository Documentation

External Resources

πŸ“„ License

This project is open source and available under the MIT License.

🀝 Acknowledgments

  • ISO C++ Committee for C++23 standard
  • LeetCode for providing excellent algorithmic problems
  • The C++ community for continuous improvements to the language
  • All contributors who help improve this repository

Happy Learning! πŸš€βœ¨

This repository is designed for comprehensive learning and mastery building, focusing on DSA concepts and modern C++ programming.

About

πŸ’‘ Collection of LeetCode solutions in modern C++ for practicing data structures and algorithms.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

70 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LeetCode C++ Solutions Repository

A collection of LeetCode algorithm problem solutions implemented in modern C++. This repository serves as a learning platform to help me become a master of C++ and DSA through systematic problem-solving.

🎯 Purpose

This repository is designed for:

  • Learning and mastering DSA concepts through practical problem-solving
  • Improving C++ programming skills using modern features when beneficial
  • Building comprehensive knowledge of algorithms and data structures
  • Systematic learning to become a C++ and DSA master

πŸš€ Modern C++ Features

This repository uses modern C++ features to write clean, efficient, and maintainable solutions:

  • Modern algorithms - Range-based algorithms and efficient data processing
  • Smart containers - Appropriate data structures for each problem
  • Error handling - Robust and safe code practices
  • Advanced concepts - Templates, concepts, and compile-time features
  • Performance optimization - Move semantics, perfect forwarding, and efficient code

πŸ“š Problems Solved

🎯 Array & Hashing

Key Patterns:

  • Hash Map/Set: Two Sum, Contains Duplicate, Valid Anagram, Group Anagrams
  • Array Manipulation: Product of Array Except Self, Longest Consecutive Sequence
  • String Processing: Valid Anagram, Group Anagrams, Encode and Decode Strings
  • Matrix/2D Arrays: Valid Sudoku
  • Frequency Counting: Top K Frequent Elements, Valid Anagram, Group Anagrams

Problems:

Problems:

🎯 Sliding Window

Key Patterns:

  • Fixed Size Window: Analyze subarrays of fixed length k
  • Variable Size Window: Expand/shrink window based on constraints
  • Hash Map + Sliding Window: Track frequency/indices within window

Problems:

🎯 Stack

Key Patterns:

  • LIFO Operations: Valid Parentheses, Min Stack, Evaluate Reverse Polish Notation
  • Monotonic Stack: Daily Temperatures, Largest Rectangle in Histogram
  • Expression Evaluation: Evaluate Reverse Polish Notation
  • Nested Structure Processing: Valid Parentheses, Generate Parentheses
  • Auxiliary Stack: Min Stack (tracking minimum), Car Fleet (tracking time)

Problems:

πŸ› οΈ Development Setup

Simple Compilation

For basic testing, you can compile individual solutions:

# Navigate to problem directorycd"src/1. Two Sum"# Compile with C++23
g++ -std=c++23 -O2 main.cpp -o solution
# or
clang++ -std=c++23 -O2 main.cpp -o solution
# Run
./solution

Compiler Requirements

  • GCC: Version 13+ with -std=c++23
  • Clang: Version 17+ with -std=c++23
  • MSVC: Version 19.35+ with /std:c++23

πŸ“ Contributing

  1. Fork the repository
  2. Create a new branch for your solution
  3. Add your solution in the appropriate problem directory
  4. Follow the existing naming convention: Problem Number. Problem Name/
  5. Submit a pull request

Solution Guidelines

  • Use C++23 standard - Leverage modern features when beneficial
  • Write clear, readable code with proper comments
  • Include problem description in comments
  • Follow C++23 best practices - RAII, smart pointers, constexpr
  • Test solutions with multiple test cases
  • Include time and space complexity analysis
  • Document C++23 features used in your solution

🧠 Learning Approach

Comprehensive Documentation System

  • Problem-Specific Learning: Each problem includes detailed README with multiple approaches
  • C++ Mastery: Extensive C++ documentation covering fundamentals to advanced topics
  • DSA Foundation: Complete data structures and algorithms reference
  • Pattern Recognition: Common algorithmic patterns and when to use them
  • Progressive Learning: Structured roadmap from basics to advanced concepts

Knowledge Building Strategy

  • Theory + Practice: Combine conceptual understanding with hands-on coding
  • Multiple Solutions: Learn different approaches to the same problem
  • Modern C++: Use latest C++23 features for efficient and clean code
  • Systematic Progress: Track learning through comprehensive documentation
  • Mastery Focus: Deep understanding over quick solutions

πŸ“Š Progress Tracking

Quick Stats

  • Total Problems: 30
  • Categories: Array & Hashing, Binary Search, Two Pointers, Sliding Window, Stack
  • Easy: 8 | Medium: 19 | Hard: 3

C++23 Features Used

  • STL Containers: std::unordered_map, std::unordered_set, std::priority_queue, std::vector, std::string, std::stack
  • STL Algorithms: std::sort, std::transform, std::accumulate, std::ranges, std::is_sorted, std::max_element
  • Modern C++: std::ranges, std::views, std::format, auto keyword, structured bindings, constexpr, std::tuple
  • Two Pointers: Efficient array traversal, sliding window techniques, greedy algorithms
  • Stack Operations: LIFO data structure, monotonic stack patterns, expression evaluation, nested structure processing

πŸ“– Learning Resources

Repository Documentation

External Resources

πŸ“„ License

This project is open source and available under the MIT License.

🀝 Acknowledgments

  • ISO C++ Committee for C++23 standard
  • LeetCode for providing excellent algorithmic problems
  • The C++ community for continuous improvements to the language
  • All contributors who help improve this repository

Happy Learning! πŸš€βœ¨

This repository is designed for comprehensive learning and mastery building, focusing on DSA concepts and modern C++ programming.

About

πŸ’‘ Collection of LeetCode solutions in modern C++ for practicing data structures and algorithms.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

70 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LeetCode C++ Solutions Repository

A collection of LeetCode algorithm problem solutions implemented in modern C++. This repository serves as a learning platform to help me become a master of C++ and DSA through systematic problem-solving.

🎯 Purpose

This repository is designed for:

  • Learning and mastering DSA concepts through practical problem-solving
  • Improving C++ programming skills using modern features when beneficial
  • Building comprehensive knowledge of algorithms and data structures
  • Systematic learning to become a C++ and DSA master

πŸš€ Modern C++ Features

This repository uses modern C++ features to write clean, efficient, and maintainable solutions:

  • Modern algorithms - Range-based algorithms and efficient data processing
  • Smart containers - Appropriate data structures for each problem
  • Error handling - Robust and safe code practices
  • Advanced concepts - Templates, concepts, and compile-time features
  • Performance optimization - Move semantics, perfect forwarding, and efficient code

πŸ“š Problems Solved

🎯 Array & Hashing

Key Patterns:

  • Hash Map/Set: Two Sum, Contains Duplicate, Valid Anagram, Group Anagrams
  • Array Manipulation: Product of Array Except Self, Longest Consecutive Sequence
  • String Processing: Valid Anagram, Group Anagrams, Encode and Decode Strings
  • Matrix/2D Arrays: Valid Sudoku
  • Frequency Counting: Top K Frequent Elements, Valid Anagram, Group Anagrams

Problems:

Problems:

🎯 Sliding Window

Key Patterns:

  • Fixed Size Window: Analyze subarrays of fixed length k
  • Variable Size Window: Expand/shrink window based on constraints
  • Hash Map + Sliding Window: Track frequency/indices within window

Problems:

🎯 Stack

Key Patterns:

  • LIFO Operations: Valid Parentheses, Min Stack, Evaluate Reverse Polish Notation
  • Monotonic Stack: Daily Temperatures, Largest Rectangle in Histogram
  • Expression Evaluation: Evaluate Reverse Polish Notation
  • Nested Structure Processing: Valid Parentheses, Generate Parentheses
  • Auxiliary Stack: Min Stack (tracking minimum), Car Fleet (tracking time)

Problems:

πŸ› οΈ Development Setup

Simple Compilation

For basic testing, you can compile individual solutions:

# Navigate to problem directorycd"src/1. Two Sum"# Compile with C++23
g++ -std=c++23 -O2 main.cpp -o solution
# or
clang++ -std=c++23 -O2 main.cpp -o solution
# Run
./solution

Compiler Requirements

  • GCC: Version 13+ with -std=c++23
  • Clang: Version 17+ with -std=c++23
  • MSVC: Version 19.35+ with /std:c++23

πŸ“ Contributing

  1. Fork the repository
  2. Create a new branch for your solution
  3. Add your solution in the appropriate problem directory
  4. Follow the existing naming convention: Problem Number. Problem Name/
  5. Submit a pull request

Solution Guidelines

  • Use C++23 standard - Leverage modern features when beneficial
  • Write clear, readable code with proper comments
  • Include problem description in comments
  • Follow C++23 best practices - RAII, smart pointers, constexpr
  • Test solutions with multiple test cases
  • Include time and space complexity analysis
  • Document C++23 features used in your solution

🧠 Learning Approach

Comprehensive Documentation System

  • Problem-Specific Learning: Each problem includes detailed README with multiple approaches
  • C++ Mastery: Extensive C++ documentation covering fundamentals to advanced topics
  • DSA Foundation: Complete data structures and algorithms reference
  • Pattern Recognition: Common algorithmic patterns and when to use them
  • Progressive Learning: Structured roadmap from basics to advanced concepts

Knowledge Building Strategy

  • Theory + Practice: Combine conceptual understanding with hands-on coding
  • Multiple Solutions: Learn different approaches to the same problem
  • Modern C++: Use latest C++23 features for efficient and clean code
  • Systematic Progress: Track learning through comprehensive documentation
  • Mastery Focus: Deep understanding over quick solutions

πŸ“Š Progress Tracking

Quick Stats

  • Total Problems: 30
  • Categories: Array & Hashing, Binary Search, Two Pointers, Sliding Window, Stack
  • Easy: 8 | Medium: 19 | Hard: 3

C++23 Features Used

  • STL Containers: std::unordered_map, std::unordered_set, std::priority_queue, std::vector, std::string, std::stack
  • STL Algorithms: std::sort, std::transform, std::accumulate, std::ranges, std::is_sorted, std::max_element
  • Modern C++: std::ranges, std::views, std::format, auto keyword, structured bindings, constexpr, std::tuple
  • Two Pointers: Efficient array traversal, sliding window techniques, greedy algorithms
  • Stack Operations: LIFO data structure, monotonic stack patterns, expression evaluation, nested structure processing

πŸ“– Learning Resources

Repository Documentation

External Resources

πŸ“„ License

This project is open source and available under the MIT License.

🀝 Acknowledgments

  • ISO C++ Committee for C++23 standard
  • LeetCode for providing excellent algorithmic problems
  • The C++ community for continuous improvements to the language
  • All contributors who help improve this repository

Happy Learning! πŸš€βœ¨

This repository is designed for comprehensive learning and mastery building, focusing on DSA concepts and modern C++ programming.

About

πŸ’‘ Collection of LeetCode solutions in modern C++ for practicing data structures and algorithms.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

70 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LeetCode C++ Solutions Repository

A collection of LeetCode algorithm problem solutions implemented in modern C++. This repository serves as a learning platform to help me become a master of C++ and DSA through systematic problem-solving.

🎯 Purpose

This repository is designed for:

  • Learning and mastering DSA concepts through practical problem-solving
  • Improving C++ programming skills using modern features when beneficial
  • Building comprehensive knowledge of algorithms and data structures
  • Systematic learning to become a C++ and DSA master

πŸš€ Modern C++ Features

This repository uses modern C++ features to write clean, efficient, and maintainable solutions:

  • Modern algorithms - Range-based algorithms and efficient data processing
  • Smart containers - Appropriate data structures for each problem
  • Error handling - Robust and safe code practices
  • Advanced concepts - Templates, concepts, and compile-time features
  • Performance optimization - Move semantics, perfect forwarding, and efficient code

πŸ“š Problems Solved

🎯 Array & Hashing

Key Patterns:

  • Hash Map/Set: Two Sum, Contains Duplicate, Valid Anagram, Group Anagrams
  • Array Manipulation: Product of Array Except Self, Longest Consecutive Sequence
  • String Processing: Valid Anagram, Group Anagrams, Encode and Decode Strings
  • Matrix/2D Arrays: Valid Sudoku
  • Frequency Counting: Top K Frequent Elements, Valid Anagram, Group Anagrams

Problems:

Problems:

🎯 Sliding Window

Key Patterns:

  • Fixed Size Window: Analyze subarrays of fixed length k
  • Variable Size Window: Expand/shrink window based on constraints
  • Hash Map + Sliding Window: Track frequency/indices within window

Problems:

🎯 Stack

Key Patterns:

  • LIFO Operations: Valid Parentheses, Min Stack, Evaluate Reverse Polish Notation
  • Monotonic Stack: Daily Temperatures, Largest Rectangle in Histogram
  • Expression Evaluation: Evaluate Reverse Polish Notation
  • Nested Structure Processing: Valid Parentheses, Generate Parentheses
  • Auxiliary Stack: Min Stack (tracking minimum), Car Fleet (tracking time)

Problems:

πŸ› οΈ Development Setup

Simple Compilation

For basic testing, you can compile individual solutions:

# Navigate to problem directorycd"src/1. Two Sum"# Compile with C++23
g++ -std=c++23 -O2 main.cpp -o solution
# or
clang++ -std=c++23 -O2 main.cpp -o solution
# Run
./solution

Compiler Requirements

  • GCC: Version 13+ with -std=c++23
  • Clang: Version 17+ with -std=c++23
  • MSVC: Version 19.35+ with /std:c++23

πŸ“ Contributing

  1. Fork the repository
  2. Create a new branch for your solution
  3. Add your solution in the appropriate problem directory
  4. Follow the existing naming convention: Problem Number. Problem Name/
  5. Submit a pull request

Solution Guidelines

  • Use C++23 standard - Leverage modern features when beneficial
  • Write clear, readable code with proper comments
  • Include problem description in comments
  • Follow C++23 best practices - RAII, smart pointers, constexpr
  • Test solutions with multiple test cases
  • Include time and space complexity analysis
  • Document C++23 features used in your solution

🧠 Learning Approach

Comprehensive Documentation System

  • Problem-Specific Learning: Each problem includes detailed README with multiple approaches
  • C++ Mastery: Extensive C++ documentation covering fundamentals to advanced topics
  • DSA Foundation: Complete data structures and algorithms reference
  • Pattern Recognition: Common algorithmic patterns and when to use them
  • Progressive Learning: Structured roadmap from basics to advanced concepts

Knowledge Building Strategy

  • Theory + Practice: Combine conceptual understanding with hands-on coding
  • Multiple Solutions: Learn different approaches to the same problem
  • Modern C++: Use latest C++23 features for efficient and clean code
  • Systematic Progress: Track learning through comprehensive documentation
  • Mastery Focus: Deep understanding over quick solutions

πŸ“Š Progress Tracking

Quick Stats

  • Total Problems: 30
  • Categories: Array & Hashing, Binary Search, Two Pointers, Sliding Window, Stack
  • Easy: 8 | Medium: 19 | Hard: 3

C++23 Features Used

  • STL Containers: std::unordered_map, std::unordered_set, std::priority_queue, std::vector, std::string, std::stack
  • STL Algorithms: std::sort, std::transform, std::accumulate, std::ranges, std::is_sorted, std::max_element
  • Modern C++: std::ranges, std::views, std::format, auto keyword, structured bindings, constexpr, std::tuple
  • Two Pointers: Efficient array traversal, sliding window techniques, greedy algorithms
  • Stack Operations: LIFO data structure, monotonic stack patterns, expression evaluation, nested structure processing

πŸ“– Learning Resources

Repository Documentation

External Resources

πŸ“„ License

This project is open source and available under the MIT License.

🀝 Acknowledgments

  • ISO C++ Committee for C++23 standard
  • LeetCode for providing excellent algorithmic problems
  • The C++ community for continuous improvements to the language
  • All contributors who help improve this repository

Happy Learning! πŸš€βœ¨

This repository is designed for comprehensive learning and mastery building, focusing on DSA concepts and modern C++ programming.

About

πŸ’‘ Collection of LeetCode solutions in modern C++ for practicing data structures and algorithms.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages