Leetcode problem on H2O
Link - https://leetcode.com/problems/building-h2o/unknown
java
2 years ago
901 B
43
Indexable
class H2O { Semaphore HSema = new Semaphore(2); Semaphore OSema = new Semaphore(0); public H2O() { } public void hydrogen(Runnable releaseHydrogen) throws InterruptedException { HSema.acquire(); // releaseHydrogen.run() outputs "H". Do not change or remove this line. releaseHydrogen.run(); OSema.release(); } public void oxygen(Runnable releaseOxygen) throws InterruptedException { OSema.acquire(2); // releaseOxygen.run() outputs "O". Do not change or remove this line. releaseOxygen.run(); HSema.release(2); } } //In the above solution, in line no-18, why are we needing to acquire 2 oxygen semaphores? The question said to only print 1 oxygen atom for every 2 hydrogen atoms. // So this was not passing the test cases when letting oxygen sema to acquire only 1.
Editor is loading...