diff --git a/BiWeekly89/A.java b/BiWeekly89/A.java new file mode 100644 index 0000000..f8f0b7d --- /dev/null +++ b/BiWeekly89/A.java @@ -0,0 +1,49 @@ +//https://leetcode.com/contest/biweekly-contest-89/problems/number-of-valid-clock-times/ + +class Solution { + + int ans; + public int countTime(String s) { + + char[] ch = new char[]{s.charAt(0),s.charAt(1),s.charAt(3),s.charAt(4)}; + + ans = 0; + + sol(0,ch,false); + + return (ans == 0) ? 1 : ans; + } + + void sol(int idx,char[] ch,boolean flag) { + + if(idx == ch.length) { + + String s = new String(ch); + String st = s.substring(2); + + if(flag) { + + if(s.compareTo("24") < 0 && st.compareTo("60") < 0) ans++; + } + + return; + } + + char t = ch[idx]; + + if(t == '?') { + + for(char i = '0' ; i <= '9' ; i++) { + + ch[idx] = i; + sol(idx+1,ch,true); + } + + ch[idx] = '?'; + } + else{ + + sol(idx+1,ch,flag); + } + } +} \ No newline at end of file diff --git a/BiWeekly89/B.java b/BiWeekly89/B.java new file mode 100644 index 0000000..886caf0 --- /dev/null +++ b/BiWeekly89/B.java @@ -0,0 +1,34 @@ +//https://leetcode.com/contest/biweekly-contest-89/problems/range-product-queries-of-powers/ + +import java.util.*; + +class Solution { + public int[] productQueries(int n, int[][] q) { + + List l = new ArrayList<>(); + + for(int i=0;i<31;i++) { + + int mask = 1 << i; + + if((mask & n) > 0) { + + l.add(1 << i); + } + } + + int[] ans = new int[q.length]; + int i = 0; + + for(int[] a : q) { + + long p = 1 ; + + for(int j=a[0];j<=a[1];j++) p = (p * l.get(j)) % (1000000000 + 7); + + ans[i++] = (int)p; + } + + return ans; + } +} \ No newline at end of file diff --git a/BiWeekly89/C.java b/BiWeekly89/C.java new file mode 100644 index 0000000..afb982e --- /dev/null +++ b/BiWeekly89/C.java @@ -0,0 +1,51 @@ +//https://leetcode.com/contest/biweekly-contest-89/problems/minimize-maximum-of-array/ + +class Solution { + public int minimizeArrayValue(int[] nums) { + + int max = nums[0]; + + for(int ele : nums) max = Math.max(max,ele); + + int l = 0 , h = max; + int ans = h; + + while(l <= h) { + + int mid = l + (h - l) / 2; + + if(isP(nums,mid)) { + + ans = mid; + h = mid - 1; + } + else{ + + l = mid+1; + } + } + + return ans; + } + + boolean isP(int[] a,int val) { + + long s = 0; + + for(int ele : a) { + + if(ele < val) { + + s += val - ele; + } + else if(ele > val) { + + s -= ele - val; + } + + if(s < 0) return false; + } + + return true; + } +} \ No newline at end of file