From 23a07931d9fdb7ca6e5ff6a7a8f36a337033f305 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=97=BC=ED=98=9C=EC=A0=95?= <122238744+cyzlcyzl@users.noreply.github.com> Date: Wed, 26 Aug 2026 23:55:06 +0900 Subject: [PATCH] Create 3940. Limit Occurrences in Sorted Array.java --- ...940. Limit Occurrences in Sorted Array.java" | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 "leetcode3/\354\227\274\355\230\234\354\240\225/3940. Limit Occurrences in Sorted Array.java" diff --git "a/leetcode3/\354\227\274\355\230\234\354\240\225/3940. Limit Occurrences in Sorted Array.java" "b/leetcode3/\354\227\274\355\230\234\354\240\225/3940. Limit Occurrences in Sorted Array.java" new file mode 100644 index 00000000..918aeb5f --- /dev/null +++ "b/leetcode3/\354\227\274\355\230\234\354\240\225/3940. Limit Occurrences in Sorted Array.java" @@ -0,0 +1,17 @@ +// o(n) + +class Solution { + public int[] limitOccurrences(int[] nums, int k) { + int n = nums.length, idx = 0; + int[] res = new int[n]; + int i = 0; + while (i < n) { + int j = i; + while (j < n && nums[j] == nums[i]) j++; + int count = Math.min(j - i, k); + for (int c = 0; c < count; c++) res[idx++] = nums[i]; + i = j; + } + return java.util.Arrays.copyOf(res, idx); + } +}