🚀 Day 50 / 180 – DSA with Java 🚀 📘 Topic Covered: Arrays & Permutation Logic 🧩 Problem Solved: Next Permutation Problem: Given an array representing a permutation, rearrange it into the next lexicographically greater permutation. If not possible, rearrange it to the lowest possible order. Approach: Identified the first decreasing element from the right, swapped it with the next greater element, and reversed the suffix to get the next permutation in order. Key Learning: ✔️ Understanding lexicographical order ✔️ Breaking complex problems into clear steps ✔️ Combining search, swap, and reverse techniques If you’re also preparing for DSA, let’s connect and learn together 🤝 #DSA #Java #180DaysOfCode #LearningInPublic #Arrays #ProblemSolving #Consistency
Next Permutation in Java Arrays
More Relevant Posts
-
🚀 Day 47 / 180 – DSA with Java 🚀 📘 Topic Covered: Matrix Traversal 🧩 Problem Solved: Spiral Matrix Problem: Given a matrix, return all elements in spiral order starting from the top-left corner. Approach: Used four boundaries — top, bottom, left, and right. Traversed layer by layer in four directions (left to right, top to bottom, right to left, bottom to top) while shrinking the boundaries after each pass. Key Learning: ✔️ Managing boundaries in matrix traversal ✔️ Breaking complex movement into clear steps ✔️ Handling edge cases in rectangular matrices If you’re also preparing for DSA, let’s connect and learn together 🤝 #DSA #Java #180DaysOfCode #LearningInPublic #Matrix #ProblemSolving #Consistency
To view or add a comment, sign in
-
-
🚀 Day 40 / 180 – DSA with Java 🚀 📘 Topic Covered: Binary Exponentiation (Fast Power) 🧩 Problem Solved: Pow(x, n) Problem: Implement a function to calculate x raised to the power n, handling both positive and negative values of n. Approach: Used Binary Exponentiation to reduce time complexity. Repeatedly squared the base and halved the exponent, multiplying the result only when needed. Also handled negative powers by taking the reciprocal. Key Learning: ✔️ Optimizing from O(n) to O(log n) ✔️ Understanding divide-and-conquer in exponentiation ✔️ Handling edge cases like negative powers If you’re also preparing for DSA, let’s connect and learn together 🤝 #DSA #Java #180DaysOfCode #LearningInPublic #ProblemSolving #Consistency
To view or add a comment, sign in
-
-
🚀 Day 46 / 180 – DSA with Java 🚀 📘 Topic Covered: Matrix Manipulation 🧩 Problem Solved: Rotate Image Problem: Given an n x n matrix representing an image, rotate it 90 degrees clockwise in-place. Approach: First transposed the matrix by swapping rows and columns across the diagonal. Then reversed each row to complete the 90-degree clockwise rotation efficiently without extra space. Key Learning: ✔️ Breaking matrix problems into smaller transformations ✔️ Understanding transpose operations ✔️ Solving in-place matrix rotation with O(1) extra space If you’re also preparing for DSA, let’s connect and learn together 🤝 #DSA #Java #180DaysOfCode #LearningInPublic #Matrix #ProblemSolving #Consistency 💙
To view or add a comment, sign in
-
-
🚀 Day 36 / 180 – DSA with Java 🚀 📘 Topic Covered: Binary Search (Peak Finding) 🧩 Problem Solved: Find Peak Element Problem: Given an array, find a peak element (an element greater than its neighbors) and return its index. Approach: Used Binary Search by comparing the middle element with its neighbors. Based on the increasing or decreasing slope, moved towards the side where a peak must exist, reducing the search space efficiently. Key Learning: ✔️ Applying binary search on unsorted arrays using patterns ✔️ Understanding how slope direction guides decisions ✔️ Solving peak problems in O(log n) time If you’re also preparing for DSA, let’s connect and learn together 🤝 #DSA #Java #180DaysOfCode #LearningInPublic #BinarySearch #ProblemSolving #Consistency
To view or add a comment, sign in
-
-
🚀 Day 37 / 180 – DSA with Java 🚀 📘 Topic Covered: Arrays & Two-Pointer Technique 🧩 Problem Solved: Squares of a Sorted Array Problem: Given a sorted array of integers (including negatives), return a new array of the squares of each number, also sorted in non-decreasing order. Approach: Used a two-pointer approach from both ends of the array. Compared squares of elements and filled the result array from the end to maintain sorted order efficiently. Key Learning: ✔️ Handling negative values in sorted arrays ✔️ Using two-pointer technique for optimal solutions ✔️ Avoiding extra sorting to achieve O(n) time complexity If you’re also preparing for DSA, let’s connect and learn together 🤝 #DSA #Java #180DaysOfCode #LearningInPublic #Arrays #ProblemSolving #Consistency
To view or add a comment, sign in
-
-
🚀 Day 45 / 180 – DSA with Java 🚀 📘 Topic Covered: Arrays & Two-Pointer Technique 🧩 Problem Solved: Merge Sorted Array Problem: Given two sorted arrays, merge the second array into the first one as a single sorted array. Approach: Started comparing elements from the end of both arrays and filled the first array from the last position backwards. This avoided shifting elements and enabled an efficient in-place merge. Key Learning: ✔️ Using reverse traversal for in-place operations ✔️ Applying two-pointer technique effectively ✔️ Merging sorted data in O(m + n) time If you’re also preparing for DSA, let’s connect and learn together 🤝 #DSA #Java #180DaysOfCode #LearningInPublic #Arrays #ProblemSolving #Consistency
To view or add a comment, sign in
-
-
🚀 Day 49 / 180 – DSA with Java 🚀 📘 Topic Covered: Strings & Expand Around Center 🧩 Problem Solved: Longest Palindromic Substring Problem: Given a string, find the longest substring that is a palindrome. Approach: Used the expand-around-center technique. For each character, expanded in both directions considering both odd and even length palindromes, and tracked the longest valid substring. Key Learning: ✔️ Handling both odd and even palindrome cases ✔️ Expanding from center for efficient checking ✔️ Reducing brute-force complexity to O(n²) If you’re also preparing for DSA, let’s connect and learn together 🤝 #DSA #Java #180DaysOfCode #LearningInPublic #Strings #ProblemSolving #Consistency
To view or add a comment, sign in
-
-
🚀 Cracked the “Between Two Sets” Problem using Java! I recently worked on a problem that really strengthened my understanding of number theory concepts like LCM (Least Common Multiple) and GCD (Greatest Common Divisor). 🔍 Problem Summary: Given two arrays, the task is to find how many integers satisfy: ✔️ All elements of the first array are factors of the integer ✔️ The integer is a factor of all elements of the second array 💡 Approach I Used: 👉 Calculated LCM of the first array 👉 Calculated GCD of the second array 👉 Counted multiples of LCM that perfectly divide the GCD ✨ This optimized approach avoids brute force and improves efficiency — a great example of applying core math concepts in coding! 🧠 Key Learnings: • Practical use of LCM & GCD • Optimization over brute force • Problem-solving mindset for coding interviews 💻 Implemented in Java and tested with multiple cases successfully. 📌 Always exciting to see how mathematical concepts power efficient algorithms! #Java #DataStructures #Algorithms #Coding #ProblemSolving
To view or add a comment, sign in
-
-
🚀 Day 38 / 180 – DSA with Java 🚀 📘 Topic Covered: Strings & Two-Pointer Technique 🧩 Problem Solved: Is Subsequence Problem: Given two strings s and t, check whether s is a subsequence of t. Approach: Used two pointers to traverse both strings. Moved the pointer in s only when characters matched, and always moved the pointer in t, ensuring order is maintained. Key Learning: ✔️ Applying two-pointer technique on strings ✔️ Understanding subsequence vs substring ✔️ Writing clean and efficient O(n) solutions If you’re also preparing for DSA, let’s connect and learn together 🤝 #DSA #Java #180DaysOfCode #LearningInPublic #Strings #ProblemSolving #Consistency
To view or add a comment, sign in
-
-
Day 7 of Java with DSA Journey 🚀 📌 Topic: Missing Number (LeetCode 268) Quote: "Sometimes the best way to solve a coding problem is to put down the keyboard and pick up a calculator." ✨ What I learned today: 🔹 Mathematical Optimization: Instead of brute force, I used a simple formula to compute the expected sum. {Sum} = \frac{n(n+1)}{2} 🔹 Core Idea: Expected Sum − Actual Sum = Missing Number 🔹 Alternative Approach: Used XOR technique where duplicates cancel out → leaving the missing value. 🔹 Efficiency: ✔️ Time Complexity: O(n) ✔️ Space Complexity: O(1) 🧠 Problem Solved: ✔️ Missing Number 💡 Key Insight: We often jump to HashSet or Sorting, but this problem taught me to pause and think mathematically first. A simple formula reduced space complexity from O(n) → O(1) 🚀 ⚡ Interview Tip (Important!): Be careful of integer overflow in Java: n * (n + 1) can exceed int limit Use long OR switch to XOR method for safety Consistency is the real key 🔑 #DSA #LeetCode #Java #Mathematics #CodingJourney #ProblemSolving #Day7 #Algorithms #Optimization #Array #MCA #lnct #100DaysOfCode #Algorithms #SoftwareEngineering #InPlaceAlgorithms #TechLearning #JavaDeveloper
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