Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth
Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

42,705 questions

55,464 answers

573 users

How to get the number of days needed to wait after a day (a[i]) gets warmer given an array of temperatures in Java

1 Answer

0 votes
import java.util.Stack;
import java.util.Arrays;

class Program {
    private static int[] number_of_days_needed_to_wait_to_get_warmer(int[] temperatures) {
        Stack<Integer> stk = new Stack();
        int size = temperatures.length;
        int result[] = new int[size];
        
        for (int i = 0; i < size; i++) {
            while (stk.size() > 0 && temperatures[i] > temperatures[stk.peek()]) {
                result[stk.peek()] = i - stk.pop();
            }
            stk.push(i);
        }
        
        return result;
    }
    
    public static void main(String[] args) {
        int[] temperatures = {82, 84, 81, 58, 85, 89, 75, 71};
        
        int[] result = number_of_days_needed_to_wait_to_get_warmer(temperatures);

        System.out.println(Arrays.toString(result));
        
    	// 82 -> 84 = 1
    	// 84 -> 81 -> 58 -> 85 = 3
    	// 81 -> 58 -> 85 = 2
    	// 58 -> 85 = 1
    	// 85 -> 89 = 1
    	// 89 -> 75 -> 71 = 0
    	// 75 -> 71 = 0
    }
}



/*
run:
 
[1, 3, 2, 1, 1, 0, 0, 0]
 
*/


 



answered Mar 8, 2024 by avibootz

Related questions

...