🔥 Solving 200 Problems in 100-Day DSA Challenge 🚀 Day 9 / 100 — DSA Challenge I have decided to take up a 100-day challenge to solve 200 problems in DSA to become a better engineer and problem solver. Today, I solved a classic problem related to partitioning with an optimized solution. ✅ Today’s Progress Problem: Painter’s Partition Problem 💡 Key Insight: Solved this problem by using Binary Search on Answer. The problem is to minimize the maximum time taken by any painter. The search space is between the maximum time taken by any painter and the total sum of boards. For each mid value, I checked if I could paint all boards with m painters without taking more than mid time. If I could paint all boards, I set end to mid - 1. If I couldn’t paint all boards, I set end to mid + 1. This problem is reduced to O(n log sum). 🧠 Biggest Insight Today When the problem asks us to minimize the maximum value, it is a strong signal to think in terms of Binary Search on Answer. 💼 Real-World Relevance This pattern is heavily utilized in the real world: • Balanced load of tasks across multiple workers • Balanced distribution of workloads in cloud environments • Scheduling of tasks to optimize maximum execution time The distribution of tasks is of critical importance. 🎯 Why I’m Doing This ✔ Improve my understanding of core CS concepts ✔ Improve my problem-solving skills ✔ Develop the capability to work on real-world projects ✔ Develop into an engineer who can solve real-life problems Consistency is better than intensity 🔥 If you’re also looking to enhance your coding skills or prepare for interviews, let's connect 🤝 #100Daysofcode #Dsa #Algorithms #Datastructures #Problemsolving #Softwareengineering #Programming #Coding #Developers #Computerscience #Fullstackdeveloper #Mern #Webdevelopment
100-Day DSA Challenge: Solving 200 Problems with Binary Search
More Relevant Posts
-
🔥 Solving 200 Problems in 100-Day DSA Challenge 🚀 Day 11 / 100 — DSA Challenge I have taken up a challenge to solve 200 DSA problems in 100 days. This will not only make me a better engineer but also a better problem solver. Today, I have focused on sorting algorithms. I have covered Bubble Sort and Selection Sort. ✅ Today’s Progress Topic: Sorting Algorithms - Bubble Sort & Selection Sort 💡 Bubble Sort (Optimized) Key Insight: Bubble Sort swaps adjacent elements to bring the largest element to the end of the array. I have optimized the code by adding one more step. We can stop the algorithm if no swaps are made in a pass. This means that the array is already sorted. 💡 Selection Sort Key Insight: Selection Sort selects the minimum element from the unsorted part and places it at the correct position. Time Complexity remains O(n²) in all cases. 🧠 Biggest Insight Today Simple algorithms can also impart valuable concepts such as iteration, swapping, and optimization, which form the basis for more complex algorithms. 💼 Real-World Relevance Sorting is a fundamental operation used in all software systems, including: • Data processing and analysis • Search and filter operations • Backend systems and databases Optimized sorting is critical for smooth operation at scale. 🎯 Why I’m Doing This ✔ Strengthen core CS fundamentals ✔ Enhance my problem-solving skills ✔ Develop the capacity to work on real-world projects ✔ Become an engineer with the capacity to solve real-life problems Consistency beats intensity 🔥 If you’re also looking to enhance your coding skills or preparing for interviews, let’s connect 🤝 #100Daysofcode #Dsa #Algorithms #Datastructures #Problemsolving #Softwareengineering #Programming #Coding #Developers #Computerscience #Fullstackdeveloper #Mern #Webdevelopment
To view or add a comment, sign in
-
-
🔥 Solving 200 Problems in 100-Day DSA Challenge 🚀 Day 13 / 100 — DSA Challenge I am undertaking a challenge of solving 200 problems within a period of 100 days. This challenge is meant to make me a better engineer and a better problem solver. Today, I was able to solve an interesting array problem by applying the Dutch National Flag (DNF) algorithm. ✅ Today’s Progress Problem: Sort Colors 💡 Key Insight: The array contains only 0s, 1s, and 2s. It needs to be sorted in place without using extra space and taking O(n) time complexity. Instead of applying a normal sorting algorithm, today’s approach was to use the Dutch National Flag algorithm with three pointers: low → tracks the position of 0 mid → tracks the current element high → tracks the position of 2 Logic: If the element is 0 -> Swap with low Move low and mid If the element is 1 -> Move mid If the element is 2 ->Swap with high Move high 🧠 Biggest Insight Today Sometimes problems that appear to be sorting problems are really problems involving pattern recognition and pointer manipulations rather than traditional sorting algorithms. 💼 Real-World Relevance These types of techniques allow us to process data in-place with minimal memory usage, which can be important if dealing with large data sets. 🎯 Why I’m Doing This ✔ Strengthen my basic computer science concepts ✔ Improve my problem-solving abilities ✔ Gain the ability to work on “real-world” projects ✔ Become an engineer that can solve “real-life” problems Consistency beats intensity 🔥 If you are also looking to improve your coding abilities or get ready for an interview, let’s connect 🤝 #100Daysofcode #Dsa #Algorithms #Datastructures #Problemsolving #Softwareengineering #Programming #Coding #Developers #Computerscience #Fullstackdeveloper #Mern #Webdevelopment
To view or add a comment, sign in
-
-
🔥 Solving 200 Problems in 100-Day DSA Challenge 🚀 Day 10 / 100 — DSA Challenge I have started a 100-day challenge to solve 200 problems in this DSA challenge, aiming to become a better engineer and a better problem solver. I am continuing with advanced array problems and learning various optimization techniques. I solved a well-known problem today using binary search. ✅ Today’s Progress Problem: Aggressive Cows Problem 💡 Key Insight: The problem looks like a placement problem, but to solve it in an optimal manner, Binary Search on Answer is required. We want to maximize the minimum distance between cows Search space is from 1 to (maximum position - minimum position) For a distance (mid): Check if it is possible to place all cows with a distance of at least mid If possible, try to get a larger distance (st = mid + 1) Else, try to get a smaller distance (end = mid - 1) Thus, an efficient solution is possible in O(n log range) time. 🧠 Biggest Insight Today I understood that if a problem is to maximize a certain value, Binary Search on Answer is a good approach. 💼 Real World Relevance This kind of problem is relevant in the real world when we need to do the following: • Distribute resources with maximum distance between them • Distribute resources with constraints • Maximize the efficiency of the distribution with constraints 💪 Why I’m Doing This ✔ Improve my core computer science concepts ✔ Improve my problem-solving skills ✔ Develop the ability to apply my skills to real-world problems ✔ Develop into a computer engineer who can solve real-life problems Consistency is key 🔥 If you're also working on improving your programming skills or interview preparation, let's connect 🤝 #100Daysofcode #Dsa #Algorithms #Datastructures #Problemsolving #Softwareengineering #Programming #Coding #Developers #Computerscience #Fullstackdeveloper #Mern #Webdevelopment
To view or add a comment, sign in
-
-
Day 1 of my DSA + System Design Journey has been insightful. Today, I focused on two powerful problem-solving patterns that every developer should master: 👉 Prefix Sum 👉 Sliding Window 💡 Prefix Sum – Think Smart, Not Hard Instead of recalculating sums repeatedly, we precompute cumulative sums and reuse them. ✅ Best for: - Subarray sum problems - Counting the number of subarrays with a given sum - Range queries 📌 Key Insight: If sum[j] - sum[i] = k, then a subarray exists with sum k. 💡 Sliding Window – Optimize Brute Force When dealing with arrays or strings, the sliding window technique helps reduce time complexity from O(n²) to O(n). ✅ Best for: - Longest substring/subarray problems - Fixed or variable window size problems - Problems involving continuous sequences 📌 Key Insight: Expand the window to grow, and shrink it when constraints break. 🔥 My Learning: Initially, I relied on brute force solutions everywhere. Now, I pause and ask: 👉 “Can this be optimized using a pattern?” That shift has been a game changer. 💻 Consistency Goal: I aim to learn and practice DSA daily for 1 hour to strengthen my problem-solving skills and move towards better engineering roles. #DataStructures #Algorithms #CodingJourney #100DaysOfCode #SoftwareEngineering #ProblemSolving #LearningInPublic #DevLife
To view or add a comment, sign in
-
-
✨ We’ve all seen them: those viral videos where people control their music, visuals, and PCs using just hand gestures. It always looks like magic. But I wanted to turn that "magic" into a strict, production-ready engineering tool. Today, I am thrilled to announce the stable v1.0.0 release of my open-source project: Gesture Control! 🚀 After a series of canary builds and extensive testing, the project has officially evolved from a prototype into a scalable computer vision engine. WHAT IS UNDER THE HOOD? 🧩 MODULAR PLUGIN ARCHITECTURE The core engine handles the heavy lifting (OpenCV + MediaPipe integration) and provides clean, live numpy arrays for your custom logic. 🛠️ FULL GESTURE CUSTOMIZATION Don't like the default swipe? Tweak the base logic in seconds. Want to add a custom "pinch-to-zoom" or "peace sign to mute" gesture? The engine allows you to easily map new hand landmarks and create custom triggers effortlessly. Complete freedom, zero hardcoding. ⚙️ MODERN STACK Fully migrated to Python 3.12 with strict typing and secure image processing. 🚀 ENTERPRISE-GRADE CI/CD Automated semantic versioning, CHANGELOG generation, and tagging via GitHub Actions. Every commit is strictly validated against Conventional Commits. 🤝 DEVELOPER EXPERIENCE (DX) Bootstrapping is as simple as running make setup. We also have comprehensive CONTRIBUTING guidelines and a strict SECURITY policy. If you are interested in Human-Computer Interaction, or just want to see an example of strict architecture built around ML models, I invite you to check out the repository! 💬 I would love to hear your feedback, review your PRs, and of course, I'd appreciate a GitHub ⭐. 🔗 The link to the source code is waiting for you in the FIRST COMMENT below 👇. #OpenSource #Python #ComputerVision #OpenCV #SoftwareEngineering #Architecture #DeveloperExperience #CICD
To view or add a comment, sign in
-
-
In the 90s/early 2000s (yeah, I am that old), there was a massive shift in the programming field regarding how we wrote code. The industry started adopting OOP (object-oriented programming) as a new paradigm, leaving structured programming to all that legacy code. Since 2022 we started seeing LLMs taking over and helping devs, who started leaving behind giants like StackOverflow. But initially, the most we could do was getting some pieces of code and using some "prompt engineering" (I was always skeptical about this) to get better responses. Then, SDD (spec-driven development) and code agents and IDEs started gaining traction. This, in my perception, is a game changer as big as OOP was. SDD is a new paradigm in software development, and gives the software engineering world a new perspective with two key benefits: documentation (always up to date) and speed. So software engineers will not be replaced, but we all need to adapt to this new paradigm. We did it before, so why not do it again? And you? Did you live in that OOP change? What do you think will be the next step in our job? Will tech leads become Software Engineering Orchestrators? #SoftwareEngineering #AI #SoftwareArchitecture #SDD
To view or add a comment, sign in
-
I used to think Dynamic Programming was just about memorizing patterns like “take or not take”… until I saw it in real life. Recently, I was working on a problem where I had multiple choices at every step, and each choice affected future outcomes. At first, I tried exploring all possibilities (pure recursion). It worked… but the time complexity exploded. Then I noticed something: 👉 I was solving the same subproblems again and again. That’s when I shifted my approach: Stored results of smaller subproblems (memoization) Built the solution step-by-step (tabulation) Avoided recomputation completely 💡 Result: From exponential → linear time And the real realization hit me: This is exactly how real systems work. Think about it: Route optimization (Google Maps) Resource allocation Stock profit decisions All of them are about: 👉 “Making the best decision now, based on past computations” 🚀 Lesson I learned: DP is not just a coding trick. It’s a way of breaking complex decisions into reusable intelligence. Once you start seeing overlapping subproblems in real life, you can’t unsee them. #DynamicProgramming #DSA #Coding #ProblemSolving #Tech #LearningInPublic
To view or add a comment, sign in
-
🧠 Data Structures & Algorithms — What Actually Matters (Beyond LeetCode) A lot of developers treat DSA as something you grind for interviews and then forget. But in reality: 👉 DSA is not about solving problems — it’s about thinking clearly under constraints. Here are a few lessons that changed how I approach coding: 🔹 1. Patterns > Problems You don’t need to solve 1000 questions. You need to master patterns: ✔ Sliding Window ✔ Two Pointers ✔ Binary Search ✔ DFS / BFS ✔ Dynamic Programming Once you see patterns, problems start repeating. 🔹 2. Brute Force First, Optimize Later Trying to jump directly to the optimal solution often slows you down. ✔ Start with clarity ✔ Then improve time/space complexity ✔ Think in iterations, not perfection 🔹 3. Complexity is a Mindset It’s not just Big-O — it’s about trade-offs. ✔ Time vs Space ✔ Readability vs Optimization ✔ Precomputation vs On-demand 🔹 4. Debugging > Coding Most people fail not because they can’t solve the problem… …but because they can’t debug their own logic. ✔ Trace small inputs ✔ Write clean code ✔ Avoid over-complication 🔹 5. Consistency Beats Intensity Doing 2–3 problems daily > solving 20 in one day and burning out. 💡 One key takeaway: “DSA is not about memorizing solutions — it’s about training your brain to think in structures.” Curious to know 👇 What’s one DSA pattern that completely changed the way you solve problems? #DSA #DataStructures #Algorithms #CodingInterview #SoftwareEngineering #ProblemSolving #Developers #Tech #Programming #LeetCode
To view or add a comment, sign in
-
Day 7/100 Today’s problem: Search Insert Position The task was to find the index of a target element in a sorted array. If the element isn’t present, return the index where it should be inserted to maintain the sorted order. Used Binary Search to solve this efficiently in O(log n) time: Compared the target with the middle element Narrowed the search space accordingly If not found, the final pointer position gives the correct insert index A simple problem, but a great reminder that mastering fundamentals is key to solving more complex challenges. Consistency is starting to pay off — one step at a time. If you're also practicing DSA, how do you approach binary search problems? #100DaysOfCode #DSA #BinarySearch #ProblemSolving #CodingJourney #TechLearning #SoftwareEngineering #LearnInPublic #Developers #CodingDaily #GrowthMindset #PlacementPreparation
To view or add a comment, sign in
-
-
Sometimes learning doesn’t come from assigned tasks. It comes from *just sitting and building something for yourself.* Recently, I was playing around with **rate limiting** — not as a requirement, just out of curiosity. Tried implementing algorithms like: • Token Bucket • Leaky Bucket But more than the algorithms, I focused on **how I design the code.** My approach was simple: → Keep it modular → Keep it extensible → Keep it plug-and-play So instead of hardcoding logic, I designed it using: • Strategy Pattern → to switch algorithms dynamically • Builder Pattern → to configure and create limiter cleanly Each algorithm is isolated. No tight coupling. Easy to extend, easy to test. You can literally change the behavior of the system just by switching the algorithm — no code rewrite. No production pressure. No deadlines. Just experimenting, breaking things, and observing behavior. And that’s where the real insight came: Rate limiting is not just about restricting requests. It’s about understanding **how systems behave under different traffic patterns.** • Burst traffic behaves differently • Steady traffic behaves differently • Each algorithm has its own trade-offs Sometimes the best learning happens when: You’re not told *what to build* But you explore *how to design it right* That’s where engineering thinking evolves. #BackendEngineering #SystemDesign #RateLimiting #Java #DesignPatterns #SoftwareArchitecture #LearningByDoing
To view or add a comment, sign in
More from this author
Explore related topics
- How to Solve Real Problems
- Tips for Real-World Problem-Solving in Interviews
- Tips for Engineers to Enhance Problem-Solving Skills
- Optimization Algorithms in Engineering
- Problem-solving Strategies for Data Engineers
- Prioritizing Problem-Solving Skills in Coding Interviews
- Approaches to Array Problem Solving for Coding Interviews
- Strategies for Solving Algorithmic Problems
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development