Posts

Showing posts from July, 2024

max subarray sum achievable out of 'k' subarrys

  /**  * MaxSubarraySum  */ import java . util .* ; //THE MAX SUBARRAY SUM ACHIEVABLE OUT OF 'K' SUBARRAYS FORMED MUST BE THE MIN POSSIBLE public class MaxSubarraySum {     public static int ans = Integer . MAX_VALUE ;     public static void solve ( int arr [], int n , int k , int index , int maxsum , int sum ) {         if ( k == 1 ) {             maxsum = Math . max ( maxsum , sum );             sum = 0 ;             for ( int i = index ; i < n ; i ++ ) {                 sum += arr [ i ];             }             maxsum = Math . max ( maxsum , sum );             ans = Math . min ( maxsum , ans );             return ;         ...

best time to buy and sell stocks

  import java . util .* ; public class BestTimeToBuyAndSellStocks {     public static void bestTime ( int price [], int n ) {         int curr = price [ 0 ];         int max_profit = Integer . MIN_VALUE ;         for ( int i =1 ; i < n ; i ++ ) {             if ( price [ i ] < curr ) {                 curr = price [ i ];             }             int curr_profit = price [ i ] - curr ;             if ( curr_profit > max_profit ) {                 max_profit = curr_profit ;             }         }         System . out . println ( "The maximum profit:" + max_profit );     }     public st...

lexicographically smallest string of length n and sum k

  import java . util .* ; public class LexicographicallySmallestString {     private static char c ;     public static String smalleststring ( int n , int k ) {         StringBuilder sb = new StringBuilder ();         int total_chars = n ;         int csum = k ;         while ( total_chars > 0 ) {             if (( total_chars - 1 ) * 26 >= ( csum - 1 )) {                 sb . append ( 'a' );                 csum -- ;             } else {                 int position = csum % 26 ;                 if ( position == 0 ) {                     sb . append ( 'z' );   ...

Kth largesst odd number in a given list

  import java . util .* ; public class KthLargestOddNumber {     public static void main ( String [] args ) {         Scanner sc = new Scanner ( System . in );         System . out . println ( "Enter L:" );         int L = sc . nextInt ();         System . out . println ( "Enter R:" );         int R = sc . nextInt ();         System . out . println ( "Enter K:" );         int K = sc . nextInt ();         int size = ( R - L ) + 1 ;         int arr [] = new int [ size ];         int count = 0 ;         ArrayList < Integer > ans = new ArrayList <>();         for ( int i = 0 ; i < arr . length ; i ++ ) {             arr [ i ] = L ;       ...

maximum balanced string partitions

  import java . util .* ; public class MaximumBalancedStringPartitions {     public static void main ( String [] args ) {         Scanner sc = new Scanner ( System . in );         System . out . println ( "Enter string:" );         String str = sc . nextLine ();         int l = 0 , r = 0 ;         int count = 0 ;         for ( int i = 0 ; i < str . length (); i ++ ) {             if ( str . charAt ( i ) == 'L' ) {                 l ++ ;             } else if ( str . charAt ( i ) == 'R' ) {                 r ++ ;             }             if ( l == r ) {                 System . ou...

comparators in java

  import java . util .* ; public class Comparators {     public static void main ( String [] args ) {         ArrayList < Person > list = new ArrayList < Person >();         list . add ( new Person ( "ashwith" , 34 ));         list . add ( new Person ( "abhi" , 20 ));         list . add ( new Person ( "bharath" , 24 ));         list . add ( new Person ( "vinay" , 31 ));         Collections . sort ( list );         System . out . println ( list );     } } class Person implements Comparable < Person > {     String name ;     int age ;     Person ( String name , int age ) {         this . name = name ;         this . age = age ;     }     public int compareTo ( Person person ) {     ...

chocola************

  import java . util .* ; public class Chocola {     public static void main ( String [] args ) {         int n = 4 , m = 6 ;         Integer CostVer [] = { 2 , 1 , 3 , 1 , 4 };         Integer CostHor [] = { 4 , 1 , 2 };         Arrays . sort ( CostHor , Collections . reverseOrder ());         Arrays . sort ( CostVer , Collections . reverseOrder ());         int cost = 0 ;         int h = 0 , v = 0 ;         int hp = 1 , vp = 1 ; // VERTICAL PARTS HORIZONTAL PARTS         while ( h < CostHor . length && v < CostVer . length ) {             if ( CostVer [ v ] >= CostHor [ h ]) {                 cost += ( CostVer [ v ] * hp );             ...

job sequencing problem

  import java . util .* ; public class JobSequencing {     public static class Job {         int id ;         int profit ;         int deadline ;         public Job ( int i , int d , int p ) {             id = i ;             profit = p ;             deadline = d ;         }     }     public static void main ( String [] args ) {         int JobsInfo [][] = { { 4 , 20 }, { 1 , 10 }, { 1 , 40 }, { 1 , 30 } };         ArrayList < Job > jobs = new ArrayList <>();         for ( int i = 0 ; i < JobsInfo . length ; i ++ ) {             jobs . add ( new Job ( i , JobsInfo [ i ][ 0 ], JobsInfo [ i ][ 1 ]));       ...

indian coins

  import java . util .* ; public class IndianCoins {     public static void main ( String [] args ) {         Integer coins [] = { 1 , 2 , 5 , 10 , 20 , 50 , 100 , 500 , 2000 };         // AS THE ORDER GIVEN IS IN ASCENDING ORDER ,WE REVERSE TO GET THE DESCENDING         // ORDER         Arrays . sort ( coins , Comparator . reverseOrder ());         int count = 0 ;         System . out . println ( "Enter amount:" );         Scanner sc = new Scanner ( System . in );         int amount = sc . nextInt ();         ArrayList < Integer > ans = new ArrayList <>();         for ( int i = 0 ; i < coins . length ; i ++ ) {             if ( coins [ i ] <= amount ) {             ...

maximum length chain of pairs

  import java . util . Arrays ; import java . util . Comparator ; public class MaximumLengthChainOfPairs {     public static void main ( String [] args ) {         int pairs [][] = { { 5 , 24 }, { 39 , 60 }, { 5 , 28 }, { 27 , 40 }, { 50 , 90 } };         Arrays . sort ( pairs , Comparator . comparing ( o -> o [ 1 ]));         int chainLen = 1 ;         int chainEnd = pairs [ 0 ][ 1 ];         for ( int i = 1 ; i < pairs . length ; i ++ ) {             if ( pairs [ i ][ 0 ] > chainEnd ) {                 chainLen ++ ;                 chainEnd = pairs [ i ][ 1 ];             }         }         System . out . println ( "Max length of chain = " + chainLen ...

minimum sum of absolute difference pairs

  import java . util .* ; public class MinimumAbsoluteDifference {     public static void main ( String [] args ) {         int A [] = { 4 , 1 , 8 , 7 };         int B [] = { 2 , 3 , 6 , 5 };         Arrays . sort ( A );         Arrays . sort ( B );         int minDiff = 0 ;         for ( int i = 0 ; i < A . length ; i ++ ) {             minDiff += Math . abs ( A [ i ] - B [ i ]);         }         System . out . println ( "The Minimun sum of Absolute Difference between elements is " + minDiff );     } }

fractional knapsack

  import java . util .* ; public class FractioinalKnapSack {     public static void main ( String [] args ) {         int weight [] = { 10 , 20 , 30 };         int value [] = { 60 , 100 , 120 };         int W = 50 ;         double ratio [][] = new double [ value . length ][ 2 ];         // 0th=>index         // 1th => ratio         for ( int i = 0 ; i < value . length ; i ++ ) {             ratio [ i ][ 0 ] = i ;             ratio [ i ][ 1 ] = value [ i ] / ( double ) weight [ i ];         }         // ASCENDING ORDER         Arrays . sort ( ratio , Comparator . comparing ( o -> o [ 1 ]));         int capacity = W ;         int fina...