diff --git a/README.md b/README.md index bb333dc26..d1f31633c 100644 --- a/README.md +++ b/README.md @@ -82,6 +82,7 @@ LeetCode |1464|[Maximum Product of Two Elements in an Array](https://leetcode.com/problems/maximum-product-of-two-elements-in-an-array/) | [C++](./algorithms/cpp/maximumProductOfTwoElementsInAnArray/MaximumProductOfTwoElementsInAnArray.cpp)|Easy| |1460|[Make Two Arrays Equal by Reversing Sub-arrays](https://leetcode.com/problems/make-two-arrays-equal-by-reversing-sub-arrays/) | [C++](./algorithms/cpp/twoArraysEqualByReversingSubArrays/MakeTwoArraysEqualByReversingSubArrays.cpp)|Easy| |1376|[Time Needed to Inform All Employees](https://leetcode.com/problems/time-needed-to-inform-all-employees/) | [C++](./algorithms/cpp/timeNeededToInformAllEmployees/TimeNeededToInformAllEmployees.cpp)|Medium| +|1375|[Bulb Switcher III](https://leetcode.com/problems/bulb-switcher-iii) | [C++](./algorithms/cpp/bulbSwitcher/BulbSwitcher.III.cpp)|Medium| |1353|[Maximum Number of Events That Can Be Attended](https://leetcode.com/problems/maximum-number-of-events-that-can-be-attended/) | [C++](./algorithms/cpp/maximumNumberOfEventsThatCanBeAttended/MaximumNumberOfEventsThatCanBeAttended.cpp)|Medium| |1333|[Filter Restaurants by Vegan-Friendly, Price and Distance](https://leetcode.com/problems/filter-restaurants-by-vegan-friendly-price-and-distance/) | [C++](./algorithms/cpp/filterRestaurantsByVeganFriendlyPriceAndDistance/FilterRestaurantsByVeganFriendlyPriceAndDistance.cpp)|Medium| |1207|[Unique Number of Occurrences](https://leetcode.com/problems/unique-number-of-occurrences/) | [C++](./algorithms/cpp/uniqueNumberOfOccurrences/Unique-Number-of-Occurrences.cpp)|Easy| diff --git a/algorithms/cpp/bulbSwitcher/BulbSwitcher.II.cpp b/algorithms/cpp/bulbSwitcher/BulbSwitcher.II.cpp index 8ed85cb67..55d375115 100644 --- a/algorithms/cpp/bulbSwitcher/BulbSwitcher.II.cpp +++ b/algorithms/cpp/bulbSwitcher/BulbSwitcher.II.cpp @@ -1,4 +1,4 @@ -// Source : https://leetcode.com/problems/bulb-switcher-ii/submissions/ +// Source : https://leetcode.com/problems/bulb-switcher-ii/ // Author : Hao Chen // Date : 2021-03-29 diff --git a/algorithms/cpp/bulbSwitcher/BulbSwitcher.III.cpp b/algorithms/cpp/bulbSwitcher/BulbSwitcher.III.cpp new file mode 100644 index 000000000..91e8bc9c0 --- /dev/null +++ b/algorithms/cpp/bulbSwitcher/BulbSwitcher.III.cpp @@ -0,0 +1,67 @@ +// Source : https://leetcode.com/problems/bulb-switcher-iii +// Author : Hao Chen +// Date : 2021-03-29 + +/***************************************************************************************************** + * + * There is a room with n bulbs, numbered from 1 to n, arranged in a row from left to right. + * Initially, all the bulbs are turned off. + * + * At moment k (for k from 0 to n - 1), we turn on the light[k] bulb. A bulb change color to blue only + * if it is on and all the previous bulbs (to the left) are turned on too. + * + * Return the number of moments in which all turned on bulbs are blue. + * + * Example 1: + * + * Input: light = [2,1,3,5,4] + * Output: 3 + * Explanation: All bulbs turned on, are blue at the moment 1, 2 and 4. + * + * Example 2: + * + * Input: light = [3,2,4,1,5] + * Output: 2 + * Explanation: All bulbs turned on, are blue at the moment 3, and 4 (index-0). + * + * Example 3: + * + * Input: light = [4,1,2,3] + * Output: 1 + * Explanation: All bulbs turned on, are blue at the moment 3 (index-0). + * Bulb 4th changes to blue at the moment 3. + * + * Example 4: + * + * Input: light = [2,1,4,3,6,5] + * Output: 3 + * + * Example 5: + * + * Input: light = [1,2,3,4,5,6] + * Output: 6 + * + * Constraints: + * + * n == light.length + * 1 <= n <= 5 * 10^4 + * light is a permutation of [1, 2, ..., n] + ******************************************************************************************************/ + +class Solution { +public: + int numTimesAllBlue(vector& light) { + int n = light.size(); + vector on(n, false); + int left = 0; //tracking the most left place that all bubls are truned on. + int result = 0; + for(int i=0; i