🗓 Daily LeetCode Progress – Day 17

Problems Solved:

#3065 Minimum Operations to Exceed Threshold Value I
#283 Move Zeroes

This continues my daily series (Day 17: Count-Below-Threshold + In‑place Zero Push). Today I focused on two array problems: counting how many elements …


This content originally appeared on DEV Community and was authored by Ertugrul

Problems Solved:

  • #3065 Minimum Operations to Exceed Threshold Value I
  • #283 Move Zeroes

This continues my daily series (Day 17: Count-Below-Threshold + In‑place Zero Push). Today I focused on two array problems: counting how many elements are below a threshold when we repeatedly remove the global minimum, and moving all zeros to the end while preserving order.

💡 What I Learned

  • For Minimum Operations to Exceed Threshold Value I, the operation “remove one occurrence of the smallest element” implies we must eliminate every value < k exactly once. Thus, after sorting, the answer is simply the count of values < k. (Sorting is optional; we can also count directly.)
  • For Move Zeroes, implementing it by erasing zeros in place and pushing them to the back preserves order but causes O(n²) behavior due to repeated middle erases on a vector/array. It still solves the problem correctly and demonstrates in‑place stability, but is not optimal versus the two‑pointer linear approach.
  • Both tasks highlight how problem constraints map to simple invariants: remove‑min step ⇒ all < k must go; stable in‑place reordering ⇒ zeros migrate without disturbing non‑zero relative order.

🧩 #3065 — Minimum Operations to Exceed Threshold Value I

C++ (Sort + Count Below k)

class Solution {
public:
    int minOperations(vector<int>& nums, int k) {
        sort(nums.begin(), nums.end());
        int i = 0;
        while (i < nums.size() && nums[i] < k){
            i += 1;
        }
        return i;
    }
};

Python (Sort + Count Below k)

class Solution:
    def minOperations(self, nums: List[int], k: int) -> int:
        nums.sort()
        i = 0
        while i < len(nums) and nums[i] < k:
            i += 1
        return i

Why it works: each operation always removes the current global minimum. As long as any element < k remains, that minimum is < k and must be removed once. Therefore, the minimal number of operations equals the number of elements < k.

Time: O(n log n) due to sort (a counting‑only variant can be O(n)).
Space: O(1) extra (in‑place sort).

🧩 #283 — Move Zeroes

C++ (In‑place erase + push_back)

class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        int start= 0, end = nums.size()-1;
        while (start < end){
            if (nums[start] == 0){
                nums.push_back(nums[start]);
                nums.erase(nums.begin() + start);
                end--;
            }else{
                start++;
            }
        }
    }
};

Python (In‑place pop/append)

class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        start = 0
        end = len(nums)-1
        while start < end:
            if nums[start] == 0:
                nums.append(nums[start])
                nums.pop(start)
                end -= 1
            else:
                start += 1

Why it works: whenever a zero is found, it is relocated to the end. Elements already processed keep their relative order, so stability is preserved.

Time: worst‑case O(n²) (due to middle erases/pops).
Space: O(1) extra.

Note: A two‑pointer O(n) alternative writes non‑zeros forward then fills trailing zeros. I kept the implementations above consistent with today’s code to reflect the approach I used.

📸 Achievements

  • Implemented threshold‑removal counting cleanly in both Python and C++.

treshold python

treshold  cpp

  • Demonstrated an in‑place, stable zero‑mover using erase/pop mechanics.

zeroes python

zeroes cpp

📦 Complexity Recap

  • Minimum Operations to Exceed Threshold Value I: O(n log n) time (with sort), O(1) extra space.
  • Move Zeroes: O(n²) time with erase/pop, O(1) extra space. (Two‑pointer variant would be O(n).)

📣 Join the Journey

I’m solving and documenting problems daily in both Python and C++, covering arrays, linked lists, dynamic programming, and more. Follow along if you’re interested in systematic problem solving.

Links


This content originally appeared on DEV Community and was authored by Ertugrul


Print Share Comment Cite Upload Translate Updates
APA

Ertugrul | Sciencx (2025-09-04T09:14:22+00:00) 🗓 Daily LeetCode Progress – Day 17. Retrieved from https://www.scien.cx/2025/09/04/%f0%9f%97%93-daily-leetcode-progress-day-17/

MLA
" » 🗓 Daily LeetCode Progress – Day 17." Ertugrul | Sciencx - Thursday September 4, 2025, https://www.scien.cx/2025/09/04/%f0%9f%97%93-daily-leetcode-progress-day-17/
HARVARD
Ertugrul | Sciencx Thursday September 4, 2025 » 🗓 Daily LeetCode Progress – Day 17., viewed ,<https://www.scien.cx/2025/09/04/%f0%9f%97%93-daily-leetcode-progress-day-17/>
VANCOUVER
Ertugrul | Sciencx - » 🗓 Daily LeetCode Progress – Day 17. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/09/04/%f0%9f%97%93-daily-leetcode-progress-day-17/
CHICAGO
" » 🗓 Daily LeetCode Progress – Day 17." Ertugrul | Sciencx - Accessed . https://www.scien.cx/2025/09/04/%f0%9f%97%93-daily-leetcode-progress-day-17/
IEEE
" » 🗓 Daily LeetCode Progress – Day 17." Ertugrul | Sciencx [Online]. Available: https://www.scien.cx/2025/09/04/%f0%9f%97%93-daily-leetcode-progress-day-17/. [Accessed: ]
rf:citation
» 🗓 Daily LeetCode Progress – Day 17 | Ertugrul | Sciencx | https://www.scien.cx/2025/09/04/%f0%9f%97%93-daily-leetcode-progress-day-17/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.