diff --git a/1472DesignBrowserHistory.java b/1472DesignBrowserHistory.java new file mode 100644 index 00000000..c9990697 --- /dev/null +++ b/1472DesignBrowserHistory.java @@ -0,0 +1,34 @@ +class BrowserHistory { + List arr=new ArrayList<>(); + int i=0; + public BrowserHistory(String homepage) { + arr.add(homepage); + i=0; + } + public void visit(String url) { + while(arr.size()>i+1){ + arr.remove(arr.size()-1); + } + arr.add(url); + i++; + } + public String back(int steps) { + i=Math.max(i-steps,0); + return arr.get(i); + } + public String forward(int steps) { + i=i+steps; + if(i>=arr.size()){ + i=arr.size()-1; + } + return arr.get(i); + } + } + + /** + * Your BrowserHistory object will be instantiated and called as such: + * BrowserHistory obj = new BrowserHistory(homepage); + * obj.visit(url); + * String param_2 = obj.back(steps); + * String param_3 = obj.forward(steps); + */ \ No newline at end of file diff --git a/2696MinimumStringLengthAfterRemovingSubstrings.java b/2696MinimumStringLengthAfterRemovingSubstrings.java new file mode 100644 index 00000000..456e63df --- /dev/null +++ b/2696MinimumStringLengthAfterRemovingSubstrings.java @@ -0,0 +1,14 @@ +class Solution { + public int minLength(String s) { + Stack st=new Stack<>(); + for(char c:s.toCharArray()){ + if(!st.isEmpty()){ + if(st.peek()=='A' && c=='B') st.pop(); + else if(st.peek()=='C' && c=='D') st.pop(); + else st.push(c); + } + else st.push(c); + } + return st.size(); + } +} \ No newline at end of file diff --git a/682BaseballGame.java b/682BaseballGame.java new file mode 100644 index 00000000..67655c3a --- /dev/null +++ b/682BaseballGame.java @@ -0,0 +1,22 @@ +class Solution { + public int calPoints(String[] operations) { + Stack stack=new Stack<>(); + for(String st:operations){ + if(st.equals("C")) stack.pop(); + else if(st.equals("D")) stack.push(stack.peek()*2); + else if(st.equals("+")){ + int a=stack.pop(); + int b=stack.pop(); + stack.push(b); + stack.push(a); + stack.push(a+b); + } + else stack.push(Integer.parseInt(st)); + } + int ans=0; + while(!stack.isEmpty()){ + ans+=stack.pop(); + } + return ans; + } +} \ No newline at end of file diff --git a/CoinChange.java b/CoinChange.java new file mode 100644 index 00000000..1af1897b --- /dev/null +++ b/CoinChange.java @@ -0,0 +1,17 @@ +import java.util.Arrays; + +public class CoinChange { + public int coinChange(int[] coins, int amount) { + int[] dp=new int[amount+1]; + Arrays.fill(dp,amount+1); + dp[0]=0; + for(int i=1;i<=amount;i++){ + for(int j=0;jamount?-1:dp[amount]; + } +} diff --git a/CounttheNumberofFairPairs.java b/CounttheNumberofFairPairs.java new file mode 100644 index 00000000..d3e2d11d --- /dev/null +++ b/CounttheNumberofFairPairs.java @@ -0,0 +1,49 @@ +import java.util.Arrays; + +public class CounttheNumberofFairPairs { + public int left(int nums[], int tar){ + int i =0; + int j = nums.length-1; + int res = -1; + while(i<=j){ + int mid = (i+j)/2; + if(nums[mid]>=tar){ + res = mid; + j = mid-1; + }else i = mid+1; + } + return res; + } + public int right(int nums[], int tar){ + int i =0; + int j = nums.length-1; + int res = -1; + while(i<=j){ + int mid = (i+j)/2; + if(nums[mid]<=tar){ + res = mid; + i = mid+1; + }else j = mid-1; + } + return res; + } + public int solve(int nums[], int l, int r, int i){ + int left = left(nums,l-nums[i]); + if(left==-1) return 0; + int right = right(nums,r-nums[i]); + if(right==-1) return 0; + int diff = (right-left+1); + if(left<=i && right>=i) diff--; + return diff; + + } + public long countFairPairs(int[] nums, int lower, int upper) { + Arrays.sort(nums); + long res= 0; + for(int i=0; in) return; + count(n,n2+1); + System.out.print(n2+" "); + } +} diff --git a/binarySearch.java b/binarySearch.java new file mode 100644 index 00000000..ae463e46 --- /dev/null +++ b/binarySearch.java @@ -0,0 +1,12 @@ +// class binarySearch{ +// public static void main(String[] args) { + +// } +// public int func(int []arr,int tar){ +// int i=0; +// int n=arr.length-1; +// while(i 0) { + String[] str = br.readLine().trim().split(" "); + int[] a = new int[str.length]; + for (int i = 0; i < str.length; i++) { + a[i] = Integer.parseInt(str[i]); + } + String[] nk = br.readLine().trim().split(" "); + int k = Integer.parseInt(nk[0]); + + Solution sln = new Solution(); + int ans = sln.aggresiveCows(a, k); + + System.out.println(ans); + System.out.println("~"); + } + } +} + +class Solution { + public static int aggresiveCows(int[] stalls, int k) { + Arrays.sort(stalls); + int low = 0; + int ans = 0; + int high = stalls[stalls.length - 1] - stalls[0]; + + while (low <= high) { + int mid = low + (high - low) / 2; + if (possible(stalls, mid, k)) { + ans = mid; + low = mid + 1; + } else { + high = mid - 1; + } + } + return ans; + } + + public static boolean possible(int[] stalls, int dist, int cows) { + int count = 1; + int last_cow = stalls[0]; + + for (int i = 1; i < stalls.length; i++) { + if (stalls[i] - last_cow >= dist) { + count++; + last_cow = stalls[i]; + } + if (count >= cows) { + return true; + } + } + return false; + } +} diff --git a/code3.java b/code3.java new file mode 100644 index 00000000..e69de29b diff --git a/code4.java b/code4.java new file mode 100644 index 00000000..0a72e52e --- /dev/null +++ b/code4.java @@ -0,0 +1,33 @@ + +public class code4 { + public int[] findPeakGrid(int[][] mat) { + int low=0; + int high=mat[0].length-1; + while(low<=high){ + int mid=low+(high-low)/2; + int row=maxele(mat,mid); + int leftele=mid-1>0?mat[row][mid-1]:-1; + int rightele=mid+1leftele && mat[row][mid]>rightele){ + return new int[]{row,mid}; + } + else if(mat[row][mid]max){ + max=mat[i][col]; + idx=i; + } + } + return idx; + } +} \ No newline at end of file diff --git a/code5.java b/code5.java new file mode 100644 index 00000000..6b04eee8 --- /dev/null +++ b/code5.java @@ -0,0 +1,35 @@ + +public class code5 { + public double findMedianSortedArrays(int[] nums1, int[] nums2) { + if(nums1.length>nums2.length){ + return findMedianSortedArrays(nums2,nums1); + } + int m=nums1.length; + int n=nums2.length; + int low=0; + int high=nums1.length; + while(low<=high){ + int mid=low+(high-low)/2; + int py=(m+n+1)/2-mid; + int x1= mid==0? Integer.MIN_VALUE:nums1[mid-1]; + int x2= py==0 ? Integer.MIN_VALUE:nums2[py-1]; + int x3= mid==m?Integer.MAX_VALUE:nums1[mid]; + int x4= py==n? Integer.MAX_VALUE:nums2[py]; + if(x1<=x4 && x2<=x3){ + if((m+n)%2==1){ + return Math.max(x1,x2); + } + else{ + return (Math.max(x1,x2)+Math.min(x3,x4))/2.0; + } + } + if(x1>x4){ + high=mid-1; + } + else{ + low=mid+1; + } + } + return -1.0; + } + } \ No newline at end of file diff --git a/code6.java b/code6.java new file mode 100644 index 00000000..e69de29b diff --git a/count.java b/count.java new file mode 100644 index 00000000..ab0be0a5 --- /dev/null +++ b/count.java @@ -0,0 +1,10 @@ +class count { + public static void main(String[] args) { + count(5); + } + public static void count(int n){ + if(n==0) return; + System.out.print(n+" "); + count(n-1); + } +} diff --git a/countElementMaximumSum.java b/countElementMaximumSum.java new file mode 100644 index 00000000..29a16da4 --- /dev/null +++ b/countElementMaximumSum.java @@ -0,0 +1,23 @@ + +import java.util.HashMap; + +class CountElementsWithMaximumFrequency { + public static void main(String[] args){ + int[] nums={1,2,2,1,3,4}; + HashMap map=new HashMap<>(); + for(int i:nums){ + map.put(i,map.getOrDefault(i, 0)+1); + } + int max=Integer.MIN_VALUE; + int cnt=0; + for(int i:map.values()){ + max=Math.max(i, max); + } + for(int i:map.values()){ + if(i==max){ + cnt++; + } + } + System.err.println(cnt*max); + } +} \ No newline at end of file diff --git a/findPeakElement.java b/findPeakElement.java new file mode 100644 index 00000000..e69de29b diff --git a/generate.java b/generate.java new file mode 100644 index 00000000..e69de29b diff --git a/lemonadeChange.java b/lemonadeChange.java new file mode 100644 index 00000000..ee09de30 --- /dev/null +++ b/lemonadeChange.java @@ -0,0 +1,33 @@ + +import java.util.*; +class Solution { + public boolean lemonadeChange(int[] bills) { + int five=0; + int ten=0; + for(int i=0;i0 && ten>0){ + five--; + ten--; + } + else if(five>=3){ + five-=3; + } + else{ + return false; + } + } + } + return true; + } +} diff --git a/listpair.java b/listpair.java new file mode 100644 index 00000000..a5949693 --- /dev/null +++ b/listpair.java @@ -0,0 +1,4 @@ + +public class listpair { + +} diff --git a/reverseStack.java b/reverseStack.java new file mode 100644 index 00000000..9f10031d --- /dev/null +++ b/reverseStack.java @@ -0,0 +1,34 @@ +import java.util.Stack; +class reverse{ + public static void main(String[] args) { + Stack stack=new Stack<>(); + func(5,stack); + // Stack st=new Stack<>(); + System.out.println(stack.size()); + reverse(stack); + while (!stack.isEmpty()) { + System.out.print(stack.pop()+" "); + } + } + public static void func(int i,Stack st){ + if(i<=0) return; + st.push(i); + func(i-1, st); + } + public static void reverse(Stack st){ + if(st.isEmpty()) return; + int a=st.pop(); + reverse(st); + // st.insertElementAt(a,0); + bottom(st,a); + } + public static void bottom(Stack st,int a){ + if (st.isEmpty()) { + st.push(a); + return; + } + int i=st.pop(); + bottom(st, a); + st.push(i); + } +} \ No newline at end of file diff --git a/searchRange.java b/searchRange.java new file mode 100644 index 00000000..5ff90a05 --- /dev/null +++ b/searchRange.java @@ -0,0 +1,49 @@ + +public class searchRange { + + public int[] searchRange(int[] nums, int target) { + int first=firstidx(nums,target); + if(first==-1){ + return new int[]{-1,-1}; + } + int last=lastidx(nums,target); + return new int[]{first,last}; + } + public static int firstidx(int[] arr,int k){ + int low=0; + int high=arr.length-1; + int f=-1; + while(low<=high){ + int mid=low+(high-low)/2; + if(arr[mid]==k){ + f=mid; + high=mid-1; + } + else if(arr[mid]