Posts

Showing posts from September, 2024

Connect Cities with Minimum cost

  /**  * ConnedtCitiesWithMInimumCost  */ import java . util .* ; public class ConnectCitiesWithMInimumCost {     public static class Pair implements Comparable < Pair > {         int dest ;         int cost ;         public Pair ( int dest , int cost ) {             this . dest = dest ;             this . cost = cost ;         }         @ Override         public int compareTo ( Pair p2 ) {             return this . cost - p2 . cost ;         }     }     public static int ConnectCities ( int cities [][]) {         boolean vis [] = new boolean [ cities . length ];         PriorityQueue < Pair > pq = new PriorityQueue <>(); ...

Cheapest Flights with 'K' slots

  import java . util .* ; public class CheapestFlightsWithinKslots {     static class Edge {         int src ;         int dest ;         int wt ;         public Edge ( int src , int dest , int wt ) {             this . src = src ;             this . dest = dest ;             this . wt = wt ;         }     }     static class Info {         int v ;         int cost ;         int stops ;         public Info ( int v , int cost , int stops ) {             this . v = v ;             this . cost = cost ;             this . stops = stops ;         } ...

Prim's Algorithm

  import java . util .* ; public class PRIMsAlgorithm {     static class Pair implements Comparable < Pair > {         int cost ;         int vertex ;         public Pair ( int vertex , int cost ) {             this . cost = cost ;             this . vertex = vertex ;         }         @ Override         public int compareTo ( Pair p2 ) {             return this . cost - p2 . cost ;         }         public String toString () {             return "Vertex: " + vertex + ", Cost: " + cost ;         }     }     static class Edge {         int src ;         int dest ;    ...

BellamFord algorithm

  import java . util .* ; public class BellamFordAlgorithm {     static class Edge {         int src ;         int dest ;         int wt ;         public Edge ( int src , int dest , int wt ) {             this . src = src ;             this . dest = dest ;             this . wt = wt ;         }     }     public static void Create ( ArrayList < Edge > graph []) {         for ( int i = 0 ; i < graph . length ; i ++ ) {             graph [ i ] = new ArrayList <>();         }         graph [ 0 ]. add ( new Edge ( 0 , 1 , 2 ));         graph [ 0 ]. add ( new Edge ( 0 , 2 , 4 ));         graph [ 1...

Word Ladder

  import java . util .* ; public class WordLadder {     public static boolean differBy1char ( String str1 , String str2 ) {         int count = 0 ;         for ( int i = 0 ; i < str1 . length (); i ++ ) {             if ( str1 . charAt ( i ) != str2 . charAt ( i )) {                 count ++ ;             }             if ( count > 1 ) {                 return false ;             }         }         return count == 1 ;     }     public static List < List < Integer >> CreateGraph ( List < String > dictionary ) {         int n = dictionary . size ();         List < List < Integer...

size of largest region in boolean matrix

  /**  * MAXSizeofRegion  */ public class MAXSizeofRegion {     public static int dfs ( int i , int j , int rows , int cols , boolean vis [][], int arr [][]) {         if ( i < 0 || j < 0 || i >= rows || j >= cols || vis [ i ][ j ] || arr [ i ][ j ] == 0 ) {             return 0 ;         }         vis [ i ][ j ] = true ;         int size = 1 ;         for ( int dx = - 1 ; dx <= 1 ; dx ++ ) {             for ( int dy = - 1 ; dy <= 1 ; dy ++ ) {                 size += dfs ( i + dx , j + dy , rows , cols , vis , arr );             }         }         return size ;     }     public static int findMax ( in...

Rotten oranges

  import java . util .* ; public class RottenOranges {     public static int OrangesRotting ( int arr [][]) {         int freshOranges = 0 ;         Queue < Integer > q = new LinkedList <>();         int n = arr . length ;         int m = arr [ 0 ]. length ;         for ( int i = 0 ; i < n ; i ++ ) {             for ( int j = 0 ; j < m ; j ++ ) {                 if ( arr [ i ][ j ] == 1 ) {                     freshOranges ++ ;                 } else if ( arr [ i ][ j ] == 2 ) {                     q . add ( i * m + j );                 }         ...