From a255485eca4e80b58c899abad1b556d3b0841093 Mon Sep 17 00:00:00 2001 From: thutasann Date: Tue, 25 Feb 2025 22:13:16 +0800 Subject: [PATCH] refactor: folder structure --- data_structures/README.md | 8 ++--- .../concurrency/process_images.ts | 29 +++++++++++++++++++ data_structures/src/Algorithms/README.md | 1 + .../TimeSpaceComplexity}/README.md | 0 .../space_complexity/constant_space.js | 0 .../space_complexity/linear_space.js | 0 .../space_complexity/quadratic_space.js | 0 .../time_complexity/constant_time.js | 0 .../time_complexity/linear_time.js | 0 .../time_complexity/logarithmic_time.js | 0 .../time_complexity/quadratic_time.js | 0 .../{ => src}/neetcode_150/Main.java | 0 .../{ => src}/neetcode_150/README.md | 0 .../neetcode_150/src/CointainsDuplicate.java | 0 .../neetcode_150/src/EncodeDecodeString.java | 0 .../neetcode_150/src/GroupAnagrams.java | 0 .../neetcode_150/src/IsValidPalindrome.java | 0 .../src/LongestConsecutiveSequence.java | 0 .../src/ProductOfArrayExceptSelf.java | 0 .../neetcode_150/src/TopKFrequentElement.java | 0 .../{ => src}/neetcode_150/src/TwoSum.java | 0 .../neetcode_150/src/ValidAnagram.java | 0 22 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 data_structures/js_questions/concurrency/process_images.ts create mode 100644 data_structures/src/Algorithms/README.md rename data_structures/{time_space_complexity => src/TimeSpaceComplexity}/README.md (100%) rename data_structures/{time_space_complexity => src/TimeSpaceComplexity}/space_complexity/constant_space.js (100%) rename data_structures/{time_space_complexity => src/TimeSpaceComplexity}/space_complexity/linear_space.js (100%) rename data_structures/{time_space_complexity => src/TimeSpaceComplexity}/space_complexity/quadratic_space.js (100%) rename data_structures/{time_space_complexity => src/TimeSpaceComplexity}/time_complexity/constant_time.js (100%) rename data_structures/{time_space_complexity => src/TimeSpaceComplexity}/time_complexity/linear_time.js (100%) rename data_structures/{time_space_complexity => src/TimeSpaceComplexity}/time_complexity/logarithmic_time.js (100%) rename data_structures/{time_space_complexity => src/TimeSpaceComplexity}/time_complexity/quadratic_time.js (100%) rename data_structures/{ => src}/neetcode_150/Main.java (100%) rename data_structures/{ => src}/neetcode_150/README.md (100%) rename data_structures/{ => src}/neetcode_150/src/CointainsDuplicate.java (100%) rename data_structures/{ => src}/neetcode_150/src/EncodeDecodeString.java (100%) rename data_structures/{ => src}/neetcode_150/src/GroupAnagrams.java (100%) rename data_structures/{ => src}/neetcode_150/src/IsValidPalindrome.java (100%) rename data_structures/{ => src}/neetcode_150/src/LongestConsecutiveSequence.java (100%) rename data_structures/{ => src}/neetcode_150/src/ProductOfArrayExceptSelf.java (100%) rename data_structures/{ => src}/neetcode_150/src/TopKFrequentElement.java (100%) rename data_structures/{ => src}/neetcode_150/src/TwoSum.java (100%) rename data_structures/{ => src}/neetcode_150/src/ValidAnagram.java (100%) diff --git a/data_structures/README.md b/data_structures/README.md index deea0b5..2d57718 100644 --- a/data_structures/README.md +++ b/data_structures/README.md @@ -1,14 +1,14 @@ -# Java Data Structures and Algorithms +# Java Data Structures and Algorithms and Javascript DeepDive This section contains Data Structure and Algorithms in Java, Typescript and Frontend (Reactjs). ## Contents - [Data Structures](./src/DataStructures) -- [Algorithms](./src/Algorithms) -- [NeetCode 150](./neetcode_150/) +- [Algorithms](./src/Algorithms/README.md) +- [NeetCode 150](./src/neetcode_150/README.md) - [Javascript Questions](./js_questions) -- [Time and Space Complexity](./time_space_complexity/README.md) +- [Time and Space Complexity](./src/TimeSpaceComplexity/README.md) **Patterns** diff --git a/data_structures/js_questions/concurrency/process_images.ts b/data_structures/js_questions/concurrency/process_images.ts new file mode 100644 index 0000000..431d6e3 --- /dev/null +++ b/data_structures/js_questions/concurrency/process_images.ts @@ -0,0 +1,29 @@ +const processImage = (image: string) => { + return new Promise((resolve) => { + setTimeout(() => { + console.log(`Processes ${image}`); + resolve(image); + }, 1000); + }); +}; + +async function ProcessImagesConcurrently(images: string[], maxConcurrent: number) { + const results: string[] = []; + const queue: Promise[] = []; + + for (let i = 0; i < images.length; i++) { + const currentImage = images[i]; + + const task = processImage(currentImage).then((result) => results.push(result)); + queue.push(task); + + if (queue.length >= maxConcurrent) { + await Promise.race(queue); + } + } + + await Promise.all(queue); + + console.log('all images processed : ', results); +} +ProcessImagesConcurrently(['image1', 'image2', 'image3', 'image4', 'image5'], 3); diff --git a/data_structures/src/Algorithms/README.md b/data_structures/src/Algorithms/README.md new file mode 100644 index 0000000..153f9ca --- /dev/null +++ b/data_structures/src/Algorithms/README.md @@ -0,0 +1 @@ +# Algorithms diff --git a/data_structures/time_space_complexity/README.md b/data_structures/src/TimeSpaceComplexity/README.md similarity index 100% rename from data_structures/time_space_complexity/README.md rename to data_structures/src/TimeSpaceComplexity/README.md diff --git a/data_structures/time_space_complexity/space_complexity/constant_space.js b/data_structures/src/TimeSpaceComplexity/space_complexity/constant_space.js similarity index 100% rename from data_structures/time_space_complexity/space_complexity/constant_space.js rename to data_structures/src/TimeSpaceComplexity/space_complexity/constant_space.js diff --git a/data_structures/time_space_complexity/space_complexity/linear_space.js b/data_structures/src/TimeSpaceComplexity/space_complexity/linear_space.js similarity index 100% rename from data_structures/time_space_complexity/space_complexity/linear_space.js rename to data_structures/src/TimeSpaceComplexity/space_complexity/linear_space.js diff --git a/data_structures/time_space_complexity/space_complexity/quadratic_space.js b/data_structures/src/TimeSpaceComplexity/space_complexity/quadratic_space.js similarity index 100% rename from data_structures/time_space_complexity/space_complexity/quadratic_space.js rename to data_structures/src/TimeSpaceComplexity/space_complexity/quadratic_space.js diff --git a/data_structures/time_space_complexity/time_complexity/constant_time.js b/data_structures/src/TimeSpaceComplexity/time_complexity/constant_time.js similarity index 100% rename from data_structures/time_space_complexity/time_complexity/constant_time.js rename to data_structures/src/TimeSpaceComplexity/time_complexity/constant_time.js diff --git a/data_structures/time_space_complexity/time_complexity/linear_time.js b/data_structures/src/TimeSpaceComplexity/time_complexity/linear_time.js similarity index 100% rename from data_structures/time_space_complexity/time_complexity/linear_time.js rename to data_structures/src/TimeSpaceComplexity/time_complexity/linear_time.js diff --git a/data_structures/time_space_complexity/time_complexity/logarithmic_time.js b/data_structures/src/TimeSpaceComplexity/time_complexity/logarithmic_time.js similarity index 100% rename from data_structures/time_space_complexity/time_complexity/logarithmic_time.js rename to data_structures/src/TimeSpaceComplexity/time_complexity/logarithmic_time.js diff --git a/data_structures/time_space_complexity/time_complexity/quadratic_time.js b/data_structures/src/TimeSpaceComplexity/time_complexity/quadratic_time.js similarity index 100% rename from data_structures/time_space_complexity/time_complexity/quadratic_time.js rename to data_structures/src/TimeSpaceComplexity/time_complexity/quadratic_time.js diff --git a/data_structures/neetcode_150/Main.java b/data_structures/src/neetcode_150/Main.java similarity index 100% rename from data_structures/neetcode_150/Main.java rename to data_structures/src/neetcode_150/Main.java diff --git a/data_structures/neetcode_150/README.md b/data_structures/src/neetcode_150/README.md similarity index 100% rename from data_structures/neetcode_150/README.md rename to data_structures/src/neetcode_150/README.md diff --git a/data_structures/neetcode_150/src/CointainsDuplicate.java b/data_structures/src/neetcode_150/src/CointainsDuplicate.java similarity index 100% rename from data_structures/neetcode_150/src/CointainsDuplicate.java rename to data_structures/src/neetcode_150/src/CointainsDuplicate.java diff --git a/data_structures/neetcode_150/src/EncodeDecodeString.java b/data_structures/src/neetcode_150/src/EncodeDecodeString.java similarity index 100% rename from data_structures/neetcode_150/src/EncodeDecodeString.java rename to data_structures/src/neetcode_150/src/EncodeDecodeString.java diff --git a/data_structures/neetcode_150/src/GroupAnagrams.java b/data_structures/src/neetcode_150/src/GroupAnagrams.java similarity index 100% rename from data_structures/neetcode_150/src/GroupAnagrams.java rename to data_structures/src/neetcode_150/src/GroupAnagrams.java diff --git a/data_structures/neetcode_150/src/IsValidPalindrome.java b/data_structures/src/neetcode_150/src/IsValidPalindrome.java similarity index 100% rename from data_structures/neetcode_150/src/IsValidPalindrome.java rename to data_structures/src/neetcode_150/src/IsValidPalindrome.java diff --git a/data_structures/neetcode_150/src/LongestConsecutiveSequence.java b/data_structures/src/neetcode_150/src/LongestConsecutiveSequence.java similarity index 100% rename from data_structures/neetcode_150/src/LongestConsecutiveSequence.java rename to data_structures/src/neetcode_150/src/LongestConsecutiveSequence.java diff --git a/data_structures/neetcode_150/src/ProductOfArrayExceptSelf.java b/data_structures/src/neetcode_150/src/ProductOfArrayExceptSelf.java similarity index 100% rename from data_structures/neetcode_150/src/ProductOfArrayExceptSelf.java rename to data_structures/src/neetcode_150/src/ProductOfArrayExceptSelf.java diff --git a/data_structures/neetcode_150/src/TopKFrequentElement.java b/data_structures/src/neetcode_150/src/TopKFrequentElement.java similarity index 100% rename from data_structures/neetcode_150/src/TopKFrequentElement.java rename to data_structures/src/neetcode_150/src/TopKFrequentElement.java diff --git a/data_structures/neetcode_150/src/TwoSum.java b/data_structures/src/neetcode_150/src/TwoSum.java similarity index 100% rename from data_structures/neetcode_150/src/TwoSum.java rename to data_structures/src/neetcode_150/src/TwoSum.java diff --git a/data_structures/neetcode_150/src/ValidAnagram.java b/data_structures/src/neetcode_150/src/ValidAnagram.java similarity index 100% rename from data_structures/neetcode_150/src/ValidAnagram.java rename to data_structures/src/neetcode_150/src/ValidAnagram.java