From cdbbd4d70aa5b84379af2f1b68caa9293c507a25 Mon Sep 17 00:00:00 2001 From: Tanmay-312 Date: Sat, 11 May 2024 20:20:03 +0530 Subject: [PATCH] Added codes for 11 May --- GeeksForGeeks/May/11-5-24/GFG.java | 47 +++++++++++++++++++++++++++++ GeeksForGeeks/May/11-5-24/README.md | 2 ++ LeetCode/May/11-5-24/README.md | 2 ++ LeetCode/May/11-5-24/Solution.java | 32 ++++++++++++++++++++ 4 files changed, 83 insertions(+) create mode 100644 GeeksForGeeks/May/11-5-24/GFG.java create mode 100644 GeeksForGeeks/May/11-5-24/README.md create mode 100644 LeetCode/May/11-5-24/README.md create mode 100644 LeetCode/May/11-5-24/Solution.java diff --git a/GeeksForGeeks/May/11-5-24/GFG.java b/GeeksForGeeks/May/11-5-24/GFG.java new file mode 100644 index 0000000..d7b2ee1 --- /dev/null +++ b/GeeksForGeeks/May/11-5-24/GFG.java @@ -0,0 +1,47 @@ +//{ Driver Code Starts +// Initial Template for Java + +import java.io.*; +import java.util.*; + +class GFG { + public static void main(String args[]) throws IOException { + BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); + int t = Integer.parseInt(in.readLine()); + while (t-- > 0) { + long n = Long.parseLong(in.readLine()); + + Solution ob = new Solution(); + List ans = new ArrayList<>(); + StringBuilder out = new StringBuilder(); + ans = ob.jugglerSequence(n); + for (int i = 0; i < ans.size(); i++) out.append(ans.get(i) + " "); + System.out.println(out); + } + } +} +// } Driver Code Ends + + +// User function Template for Java + +class Solution +{ + static List jugglerSequence(long n) + { + // code here + List ans=new ArrayList<>(); + ans.add(n); + while(n>1) + { + if(n%2==0) + n=(long)Math.pow(n,0.5); + else + n=(long)Math.pow(n,1.5); + + ans.add(n); + } + + return ans; + } +} diff --git a/GeeksForGeeks/May/11-5-24/README.md b/GeeksForGeeks/May/11-5-24/README.md new file mode 100644 index 0000000..7384c4b --- /dev/null +++ b/GeeksForGeeks/May/11-5-24/README.md @@ -0,0 +1,2 @@ +Time complexity - O(n) +Space complexity - O(n) diff --git a/LeetCode/May/11-5-24/README.md b/LeetCode/May/11-5-24/README.md new file mode 100644 index 0000000..c487550 --- /dev/null +++ b/LeetCode/May/11-5-24/README.md @@ -0,0 +1,2 @@ +Time complexity - O(sort + nlogk) +Space complexity - O(n) diff --git a/LeetCode/May/11-5-24/Solution.java b/LeetCode/May/11-5-24/Solution.java new file mode 100644 index 0000000..733e766 --- /dev/null +++ b/LeetCode/May/11-5-24/Solution.java @@ -0,0 +1,32 @@ +class Solution +{ + public double mincostToHireWorkers(int[] quality, int[] wage, int k) + { + double ans = Double.MAX_VALUE; + int qualitySum = 0; + // (wagePerQuality, quality) sorted by wagePerQuality + Pair[] workers = new Pair[quality.length]; + Queue maxHeap = new PriorityQueue<>(Collections.reverseOrder()); + + for (int i = 0; i < quality.length; ++i) + workers[i] = new Pair<>((double) wage[i] / quality[i], quality[i]); + + Arrays.sort(workers, (a, b) -> Double.compare(a.getKey(), b.getKey())); + + for (Pair worker : workers) + { + double wagePerQuality = worker.getKey(); + int q = worker.getValue(); + maxHeap.offer(q); + qualitySum += q; + + if (maxHeap.size() > k) + qualitySum -= maxHeap.poll(); + + if (maxHeap.size() == k) + ans = Math.min(ans, qualitySum * wagePerQuality); + } + + return ans; + } +}