🚀 **Day 6/30 – LeetCode Java Challenge** Today was not “easy wins.” This one actually demanded proper problem-solving. Worked on a **robot collision simulation problem** involving positions, directions, and health values. This wasn’t just coding — it required structuring the problem correctly before even thinking about implementation. 📊 **Result:** ✔️ Accepted (2433/2433 test cases) ⚡ Runtime: 50 ms (Beats 54.78%) 💾 Memory: Moderate 💡 **What actually mattered today:** * Sorting + stack = powerful combination for collision-type problems * Simulation problems expose weak logic very quickly * If your approach is unclear, your code will collapse under edge cases Let’s be honest: This solution works, but it’s not efficient enough. 54% runtime means there’s still a lot of room to optimize. The real takeaway is understanding the **approach**, not celebrating the acceptance. Most people stop at “Accepted.” That’s a mistake. The real growth starts after that. Day 6 done. More depth, less surface-level coding. Archana J E Bavani k Divya Suresh Deepika Kannan Hari priya B Harini B Bhavya B Devipriya R Kezia H Vaishnavi Janaki #LeetCode #Java #DSA #ProblemSolving #Consistency #30DaysOfCode #Algorithms
Java LeetCode Challenge: Robot Collision Simulation Problem
More Relevant Posts
-
🚀 Day 3 of My Coding Challenge Improving my problem-solving skills step by step! Today I solved a number-based problem on reversing an integer. 🔹 Platforms: LeetCode & GeeksforGeeks 🔹 Problem: LeetCode #7 – Reverse Integer 🔹 Problem Statement: Given a signed 32-bit integer, reverse its digits. If the reversed integer overflows, return 0. 🔹 Approach: 1️⃣ Extract last digit using modulo (%) 2️⃣ Build reversed number step by step 3️⃣ Check for overflow before updating result 🔹 Example: Input: 123 → Output: 321 Input: -123 → Output: -321 Input: 120 → Output: 21 🔹 What I learned: ✔ Handling integer overflow conditions ✔ Working with digits using modulo & division ✔ Writing safe and optimized code 💻 Code: import java.util.*; public class ReverseIntegerLeetCode7 { ``` public static int reverse(int x) { int rev = 0; while (x != 0) { int rem = x % 10; x = x / 10; // Check overflow if (rev > Integer.MAX_VALUE / 10 || (rev == Integer.MAX_VALUE / 10 && rem > 7)) { return 0; } if (rev < Integer.MIN_VALUE / 10 || (rev == Integer.MIN_VALUE / 10 && rem < -8)) { return 0; } rev = (rev * 10) + rem; } return rev; } public static void main(String[] args) { int x = 123; System.out.println(reverse(x)); x = -123; System.out.println(reverse(x)); x = 120; System.out.println(reverse(x)); } ``` } 🔗 GitHub: https://lnkd.in/g-wNSrPq #Java #DSA #LeetCode #CodingChallenge #50DaysChallenge #Consistency #GrowthMindset #LearningJourney
To view or add a comment, sign in
-
Day 14 of my coding journey — Extracting Unique Words using Java Streams Today I explored a clean and efficient way to extract unique words from a string using Java Streams. Instead of writing multiple loops and conditional checks, I leveraged the power of functional programming: Grouped words using a frequency map Filtered out words that appear more than once Collected only truly unique words in a concise pipeline What I really liked about this approach is how readable and expressive the code becomes. It clearly shows what we want to achieve rather than how step-by-step. Key takeaway: Writing optimized code is not just about performance — it’s also about clarity, maintainability, and using the right abstractions. Every day I’m getting more comfortable thinking in terms of streams, transformations, and data flow. If you have alternative approaches or optimizations, I’d love to hear them. #Day14 #Java #CodingJourney #JavaStreams #BackendDevelopment #ProblemSolving #CleanCode
To view or add a comment, sign in
-
-
Day 31 of #50DaysLeetCode Challenge 💻🔥 Today I solved the “Permutations” problem using Java. 🔹 Problem: Given an array of distinct integers, return all possible permutations. 🔹 Reality check: If you don’t understand recursion properly, this problem will expose you. There’s no shortcut here. 🔹 Approach (Backtracking): Fix one element at a time Swap it with every possible choice Recurse for the remaining positions Backtrack (undo the swap) to explore other possibilities 🔹 Key Insight: This isn’t about generating values — it’s about exploring a decision tree. Every level = a position in the array Every branch = a choice 🔹 Time Complexity: O(n!) — and that’s unavoidable 📌 What I learned: Backtracking is not optional for DSA. If you try to avoid it, you’ll get stuck on a whole category of problems. Stop memorizing patterns blindly. Understand why the recursion works. #Day25 #LeetCode #Java #Backtracking #DSA #CodingChallenge #ProblemSolving
To view or add a comment, sign in
-
-
What happens when you're tasked with debugging a legacy codebase that's been untouched for years? I still remember my first encounter with such a project, it was like trying to decipher a puzzle written in a language I barely understood. My team and I were assigned to refactor a massive Java application that had been built over a decade ago. The code was a mess of nested if-else statements, obscure variable names, and outdated libraries. It was overwhelming, to say the least. One particular issue that had me stumped was a tricky null pointer exception that would occur only under certain conditions. I spent hours poring over the code, trying to identify the culprit, until I stumbled upon a hidden gem of a method that was the root cause of the problem. The fix was relatively simple, just a few lines of code: ```java if (object == null) { return Optional.empty(); } else { return Optional.of(object); } ``` This experience taught me the importance of patience, persistence, and attention to detail when working with legacy code. What's the most challenging debugging experience you've had, and how did you overcome it? #DebuggingWarStories #LegacyCode #Java #Refactoring #CodeQuality #SoftwareDevelopment #ProgrammingChallenges #TechJourney
To view or add a comment, sign in
-
Day 73 of #90DaysDSAChallenge Solved LeetCode 451: Sort Characters By Frequency Learned an important Java design concept today. Problem Overview: The task was to sort characters in a string based on descending frequency. What confused me initially: Why create a separate Freq class instead of just using HashMap and PriorityQueue directly? Key Learning: PriorityQueue stores one complete object at a time. For this problem, each item needs two pieces of data together: Character Frequency Example: Instead of storing: e and 2 separately We package them as: Freq('e', 2) That custom class acts like a container holding both values in one object, so PriorityQueue can compare and sort them correctly. Why this matters: This taught me that custom classes in Java are often not about complexity, they simply bundle related data into one manageable unit. Alternative approach: We can also use Map.Entry<Character, Integer> instead of creating a custom class, but building Freq makes the logic easier to understand while learning. Today’s takeaway: Not every class is for business logic — sometimes it exists just to package data cleanly. #Java #90DaysDSAChallenge #LeetCode #PriorityQueue #HashMap #CodingJourney #ProblemSolving
To view or add a comment, sign in
-
-
🚀 Day 75 — LeetCode Practice 🚀 Today’s problem: To Lower Case 💡 What I learned today: • Understood how to convert characters using built-in string methods • Learned the importance of string immutability in Java • Practiced writing clean and minimal code • Realized that sometimes the simplest problems reinforce core concepts 🧠 Key Idea: Use Java’s inbuilt function: toLowerCase() → converts all uppercase letters to lowercase easily 🔥 Takeaway: Not every problem needs complex logic — knowing the right method saves time ⏱️ Consistency > Complexity 💯 #Day75 #LeetCode #Java #DSA #CodingJourney #Consistency #Learning
To view or add a comment, sign in
-
-
🚀 Day 55 of #100DaysOfCode — Getting Started with Multithreading in Java Over the past 2 days, I explored one of the most important concepts in Java: Multithreading 🔥 💡 What I Learned 🧵 What is Multithreading? Multithreading allows a program to execute multiple tasks simultaneously, improving performance and efficiency ⚡ 👉 Instead of running tasks one after another, we can run them in parallel. ⚙️ Creating Threads in Java 1️⃣ Using Thread Class Extend the Thread class Override the run() method Start using start() 2️⃣ Using Runnable Interface (Best Practice ✅) Implement Runnable Pass it to a Thread object Start execution using start() 🧠 Key Takeaways ✔ Runnable is preferred over Thread (better design & flexibility) ✔ Supports multiple inheritance ✔ Separates task from execution ✔ Helps in building scalable backend systems ⚠️ Important Concept 👉 Difference between: run() ❌ (normal method call) start() ✅ (creates new thread) 🔥 Real-World Use Cases Backend APIs Payment systems Real-time applications Inventory & billing systems (like the one I'm building 🏪) 🚀 What’s Next? ➡️ Synchronization ➡️ Race Conditions ➡️ ExecutorService (Thread Pool) Learning multithreading feels like unlocking a new level in Java 💪 Huge thanks to my mentor Suresh Bishnoi for simplifying complex concepts like multithreading and pushing me to keep learning consistently. #Java #Multithreading #100DaysOfCode #BackendDevelopment #LearningJourney
To view or add a comment, sign in
-
-
Day 83 of #100DaysOfCode Today’s problem: Ugly Number An ugly number is a positive integer whose prime factors are limited to 2, 3, and 5. Approach: Instead of checking all factors, I kept dividing the number by 2, 3, and 5 repeatedly: If the number reduces to 1 → it’s ugly ✅ If something else remains → not ugly ❌ 🔍 Key Insight: Efficient problem-solving is often about reducing complexity, not increasing checks. 🧠 What I learned: How to simplify factor-based problems Importance of repeated division in optimization Writing clean and efficient logic ⚡ Example: 6 → 2 × 3 → Ugly ✅ 14 → includes 7 → Not Ugly ❌ Consistency is slowly building confidence 💪 On to Day 84! #DSA #Java #CodingJourney #ProblemSolving #LeetCode #100DaysOfCode
To view or add a comment, sign in
-
-
Coding agents are innovating fast, but they're also getting bloated. To actually understand what they’re doing, you have to go back to the basics. A good way to learn is to get into it. Adding LSP support to the 260 line nanocode agent in #Java https://lnkd.in/ec5j8QpJ
To view or add a comment, sign in
-
#repost Day1 - 𝐒𝐦𝐚𝐥𝐥 𝐂𝐨𝐧𝐜𝐞𝐩𝐭, 𝐁𝐢𝐠 𝐈𝐦𝐩𝐚𝐜𝐭 – 𝐉𝐚𝐯𝐚 𝐈𝐧𝐝𝐞𝐱𝐢𝐧𝐠 💡 In Java, array index starts from 0 because it represents the distance (offset) from the starting point in memory. 👉 Index 0 → First element (0 steps from start) 👉 Index 1 → Second element (1 step away) This makes calculations simple and fast: 𝑨𝒅𝒅𝒓𝒆𝒔𝒔 = 𝑩𝒂𝒔𝒆 + (𝑰𝒏𝒅𝒆𝒙 × 𝑺𝒊𝒛𝒆) 💡 Starting from 0 𝐚𝐯𝐨𝐢𝐝𝐬 𝐞𝐱𝐭𝐫𝐚 𝐜𝐚𝐥𝐜𝐮𝐥𝐚𝐭𝐢𝐨𝐧𝐬 𝐚𝐧𝐝 𝐢𝐦𝐩𝐫𝐨𝐯𝐞𝐬 𝐩𝐞𝐫𝐟𝐨𝐫𝐦𝐚𝐧𝐜𝐞. That’s why most languages follow 0-based indexing. #java #coding #developer #learning #springboot
To view or add a comment, sign in
-
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