Posts

Showing posts from October, 2021

Missing Number LeetCode

 class Solution {     public int missingNumber(int[] nums) {         int n=nums.length;         int max=0;         int sum=0;                  for(int i=0;i<n;i++){             sum=sum+nums[i];             if(nums[i]>max){                 max=nums[i];             }         }         int m=max;         int min=0;         boolean flag=false;                  for(int i=0;i<n;i++){              if(nums[i]<min){                 min=nums[i];             }                ...

First Unique Character In String LeetCode

 class Solution {     public int firstUniqChar(String s) {   LinkedHashMap<Character,Integer> map=new LinkedHashMap<Character,Integer>();         for(int i=0;i<s.length();i++){             if(map.containsKey(s.charAt(i))){                 map.put(s.charAt(i),map.get(s.charAt(i))+1);             }             else{                 map.put(s.charAt(i),1);             }         }         char a='\0';         //map.forEach((k,v)->System.out.println(k+"->"+v));                  for (Map.Entry<Character, Integer> entry : map.entrySet()) {             char key = entry.getKey();       ...

Largest Rectangle In Histogram InterviewBit/ LeetCode

  class  StoreStack{      int  data;      int  val; } public   class  Solution {      public   int  largestRectangleArea( int [] arr) {          int  n=arr.length;         Stack<StoreStack> stack1= new  Stack<StoreStack>();          Stack<StoreStack> stack2= new  Stack<StoreStack>();                   ArrayList<Integer>aa= new  ArrayList<Integer>();         ArrayList<Integer>ab= new  ArrayList<Integer>();         ArrayList<Integer>ac= new  ArrayList<Integer>();      ...

Count Of Smaller Elements Geeks For Geeks

 class Compute {          public long countOfElements(long arr[], long n, long x)     {         long count=0l;         for(int i=0;i<n;i++){             if(arr[i]<=x){                 count++;             }         }         return count;     } } TIME:O(N)[GFG Time: 0.7/3.5] SPACE:O(1)

Stock Span Problem Geeks For Geeks

 class StoreStack{ int val; int data; } class Solution {     //Function to calculate the span of stock’s price for all n days.          public static int[] calculateSpan(int arr[], int n)     {         ArrayList<Integer> aa=new ArrayList<Integer>();         StoreStack obj[]=new StoreStack[n];         Stack<StoreStack> stack=new Stack<StoreStack>();         for(int i=0;i<n;i++){ obj[i]=new StoreStack(); obj[i].val=arr[i]; obj[i].data=i; } /*for(int i=0;i<n;i++){ System.out.println(obj[i].val+" "+obj[i].data); }*/ for(int i=0;i<n;i++){ if(stack.isEmpty()){ aa.add(-1); } else{ if(stack.peek().val>arr[i]){ aa.add(stack.peek().data); } else{ while(!stack.isEmpty() && stack.peek().val<=arr[i]){ stack.pop(); } if(stack...

Next Greater Node In Linked List LeetCode

 class Solution {     public int[] nextLargerNodes(ListNode head) {         ArrayList<Integer> aa=new ArrayList<Integer>();         Stack<Integer> stack=new Stack<Integer>();                           ListNode temp=head;                 while(temp!=null){             aa.add(temp.val);             temp=temp.next;         }         Collections.reverse(aa);                  System.out.println(aa);                  int ab[]=new int[aa.size()];                  for(int i=0;i<aa.size();i++){             if(stack.isEmpty()){      ...

Next Greater Element Geeks For Geeks And InterviewBit

 Approach 1: Using ArrayList                  ArrayList<Long> aa=new ArrayList<Long>();         Stack<Long>stack=new Stack<Long>();         for(int i=n-1;i>-1;i--){             if(stack.isEmpty()==true){                 aa.add(Long.valueOf(-1));             }             else{                 if(stack.peek()>arr[i]){                     aa.add(stack.peek());                 }                 else{                     while(!stack.isEmpty() && stack.peek()<=arr[i]){               ...

Minimum Deletions , Form A Palindrome Geeks For Geeks

 For Both Questions Code Is Same: MINIMUM DELETIONS: class Solution{     static int minimumNumberOfDeletions(String s1) {         StringBuilder sb=new StringBuilder();         sb.append(s1);         String s2=sb.reverse().toString();         int n=s2.length();                  int t[][]=new int[n+1][n+1];                  for(int i=0;i<n+1;i++){             for(int j=0;j<n+1;j++){                 if(i==0 || j==0){                     t[i][j]=0;                 }             }         }                  for(int i=1;i<n+1;i++){      ...

Longest Palindromic Subsequence Geeks For Geeks And LeetCode And InterviewBit

 class Solution {     public int longestPalinSubseq(String s1)     {         StringBuilder sb=new StringBuilder();         sb.append(s1);         String s2=sb.reverse().toString();         int n=s1.length();         return cal(s1,s2,n);     }          public int cal(String a, String b, int n){         int t[][]=new int[n+1][n+1];          for(int i=0;i<n+1;i++){ for(int j=0;j<n+1;j++){ if(i==0 || j==0){ t[i][j]=0; } } } for(int i=01;i<n+1;i++){ for(int j=01;j<n+1;j++){ if(a.charAt(i-1)==b.charAt(j-1)){ t[i][j]=1+t[i-1][j-1]; } else{ t[i][j]=Integer.max(t[i-1][j],t[i][j-1]); } } } return t[n][n];     }                     ...

Longest Palindromic Subsequence

 import java.util.Scanner; class Solve{ public int cal(String a, String b, int n){ int t[][]=new int[n+1][n+1]; for(int i=0;i<n+1;i++){ for(int j=0;j<n+1;j++){ if(i==0 || j==0){ t[i][j]=0; } } } for(int i=01;i<n+1;i++){ for(int j=01;j<n+1;j++){ if(a.charAt(i-1)==b.charAt(j-1)){ t[i][j]=1+t[i-1][j-1]; } else{ t[i][j]=Integer.max(t[i-1][j],t[i][j-1]); } } } return t[n][n]; } } class LongestPaindromicSubsequence{ public static void main(String arg[]){ Scanner sc=new Scanner(System.in); String s=sc.next(); StringBuilder sb=new StringBuilder(); sb.append(s); String b=(sb.reverse().toString()); int n=s.length(); Solve obj=new Solve(); int c=obj.cal(s,b,n); System.out.println(c); } }

Minimum Number Of Insertion And Deletion Geeks For Geeks

 class Solution { public int minOperations(String s1, String s2)  {      int n=s1.length();     int m=s2.length();     int p=cal(s1,s2,n,m);     //System.out.println(p);     return p; }  public int cal(String x, String y, int n, int m){     int t[][]=new int[n+1][m+1];     for(int i=0;i<n+1;i++){         for(int j=0;j<m+1;j++){             if(i==0 ||j==0){                 t[i][j]=0;             }         }     }          for(int i=1;i<n+1;i++){         for(int j=1;j<m+1;j++){             if(x.charAt(i-1)==y.charAt(j-1)){                 t[i][j]=t[i-1][j-1]+1;     ...

Shortest Common Super Sequence Geeks For Geeks

 class Solution {     //Function to find the length of the shortest common supersequence of two strings.     public static int shortestCommonSupersequence(String x,String y,int n,int m)     {          int t[][]=new int[n+1][m+1];                  for(int i=0;i<n+1;i++){             for(int j=0;j<m+1;j++){                 if(i==0 || j==0){                     t[i][j]=0;                 }             }         }                  for(int i=1;i<n+1;i++){             for(int j=1;j<m+1;j++){                 if(x.charAt(i-1)==y.charAt(j-1)){     ...

Printing Longest Common Subsequence

 import java.util.Scanner; class LongestCommonSequencePrint{ public static String cal(String x, String y, int n ,int m){ int t[][]=new int[n+1][m+1]; for(int i=0;i<n+1;i++){ for(int j=0;j<m+1;j++){ if(n==0 || m==0){ t[i][j]=0; } } } for(int i=01;i<n+1;i++){ for(int j=01;j<m+1;j++){ if(x.charAt(i-1)==y.charAt(j-1)){ //t[n][m]=1+cal(x,y,i-1,j-1); //t[i][j]=1+cal(x,y,i-1,j-1); t[i][j]=t[i-1][j-1]+1; } else{ //t[n][m]=Integer.max((cal(x,y,i-1,j)),cal(x,y,i,j-1)); //t[i][j]=Integer.max((cal(x,y,i-1,j)),cal(x,y,i,j-1)); t[i][j]=Integer.max(t[i][j-1],t[i-1][j]); } } } String s=print(x,y,n,m,t); return s; } public static String print(String x, String y, int n, int m, int[][]t){ StringBuilder sb=new StringBuilder(); int i=n; int j=m; while(i>0 && j>0){ if(x.charAt(i-1)==y.charAt(j-1)){ sb.append(x....

Longest Common Subsequence Dynamic Programming (Geeks For Geeks , LeetCode, InterviewBit)

 LeetCode: class Solution {     public int longestCommonSubsequence(String a, String b) {       int n=a.length();         int m=b.length();         int t[][]=new int[n+1][m+1];         for(int i=0;i<n+1;i++){             for(int j=0;j<m+1;j++){                 if(i==0 || j==0){                     t[i][j]=0;                 }             }         }         for(int i=1;i<n+1;i++){             for(int j=1;j<m+1;j++){                 if(a.charAt(i-1)==b.charAt(j-1)){                     t[i][j]=t[i-1][j-1]+1;         ...

Equal Sum Partition Memoize Approach

 import java.util.Scanner; class KnapsackSolve{ public int knapsack(int[] arr, int n, int sum){ int t[][]=new int[n+1][sum+1]; for(int i=0;i<n+1;i++){ for(int j=0;j<sum+1;j++){ t[i][j]=-1; } } if(n==0 && sum==0){ return 1; } if(n==0 && sum!=0){ return 0; } if(sum==0){ return 1; } if(t[n][sum]!=-1){ return t[n][sum];  } else{ if(arr[n-1]>sum){ t[n][sum]=knapsack(arr,n-1,sum); } else{ t[n][sum]=Integer.max(knapsack(arr,n-1,sum),knapsack(arr,n-1,sum-arr[n-1])); } return t[n][sum]; } } } class EqualSumPartitionMemoize{ public static void main(String arg[]){ Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int arr[]=new int[n]; for(int i=0;i<n;i++){ arr[i]=sc.nextInt(); } int sum=0; for(int i=0;i<n;i++){ sum=sum+arr[i]; } if(sum%2!=0){ System.out.println("false"); System.out.pr...

Equal Partition Sum Recursive Approach

 import java.util.Scanner; class KnapsackSolve{ public boolean knapsack(int[] arr, int n, int sum){ if(n==0 && sum==0){ return true; } if(n==0 && sum!=0){ return false; } if(sum==0){ return true; } else{ if(arr[n-1]>sum){ return knapsack(arr,n-1,sum); } else{ return (knapsack(arr,n-1,sum) || knapsack(arr,n-1,sum-arr[n-1])); } } } } class EqualSumPartitionRecursive{ public static void main(String arg[]){ Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int arr[]=new int[n]; for(int i=0;i<n;i++){ arr[i]=sc.nextInt(); } int sum=0; for(int i=0;i<n;i++){ sum=sum+arr[i]; } if(sum%2!=0){ System.out.println("false"); System.out.println("Not possible"); } else{ KnapsackSolve obj1=new KnapsackSolve(); boolean c=obj1.knapsack(arr,n,sum/2); System.out.println(c); } } }

Subset Sum Problem Interview Bit

  public   class  Solution {      public   int  solve( int [] arr,  int  sum) {                   //Base Condition          int  n=arr.length;          boolean  t[][]= new   boolean [n+ 1 ][sum+ 1 ];              int  a= 0 ;              for ( int  i= 0 ;i<n+ 1 ;i++){                  for ( int  j= 0 ;j<sum+ 1 ;j++){                      if (i== 0 ){             ...

Subset Sum Using Memoization

 import java.util.Scanner; class KnapsackSolve{ public boolean knapsack(int[] arr, int n, int sum){ //Base Condition if(n==0){ return false; } else if(sum==0 && n!=0){ return true; } else if(sum==0 && n==0){ return true; } boolean t[][]=new boolean[n+1][sum+1]; for(int i=1;i<n+1;i++){ for(int j=1;j<sum+1;j++){ t[i][j]=false; } } if(t[n][sum]!=false){ return t[n][sum]; } else{ if(arr[n-1]>sum){ t[n][sum]=knapsack(arr,n-1,sum); } else{ t[n][sum]=knapsack(arr,n-1,sum) || knapsack(arr,n-1,sum-arr[n-1]); } return t[n][sum]; } } } class SubsetSumMemoize{ public static void main(String arg[]){ Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int arr[]=new int[n]; for(int i=0;i<n;i++){ arr[i]=sc.nextInt(); } int sum=sc.nextInt(); KnapsackSolve obj1=new KnapsackSolve(); b...