From 497156e173edf4406f7ab002cf3ae6f51b5cd8c8 Mon Sep 17 00:00:00 2001 From: AkifhanIlgaz Date: Sat, 14 Jan 2023 01:08:51 +0300 Subject: [PATCH] Create: 1838-frequency-of-the-most-frequent-element.rs / .go --- ...-frequency-of-the-most-frequent-element.go | 24 +++++++++++++++++++ ...-frequency-of-the-most-frequent-element.rs | 21 ++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 go/1838-frequency-of-the-most-frequent-element.go create mode 100644 rust/1838-frequency-of-the-most-frequent-element.rs diff --git a/go/1838-frequency-of-the-most-frequent-element.go b/go/1838-frequency-of-the-most-frequent-element.go new file mode 100644 index 000000000..25cb19ebf --- /dev/null +++ b/go/1838-frequency-of-the-most-frequent-element.go @@ -0,0 +1,24 @@ +import ( + "math" + "sort" +) + +func maxFrequency(nums []int, k int) int { + sort.Ints(nums) + + left, right, res, total := 0,0,0,0 + + for right < len(nums) { + total += nums[right] + + for nums[right] * (right - left +1) > total + k { + total -= nums[left] + left++ + } + + res = int(math.Max(float64(res), float64(right - left + 1))) + right++ + } + + return res +} \ No newline at end of file diff --git a/rust/1838-frequency-of-the-most-frequent-element.rs b/rust/1838-frequency-of-the-most-frequent-element.rs new file mode 100644 index 000000000..b21111759 --- /dev/null +++ b/rust/1838-frequency-of-the-most-frequent-element.rs @@ -0,0 +1,21 @@ +impl Solution { + pub fn max_frequency(mut nums: Vec, k: i32) -> i32 { + let (mut left, mut right, mut res, mut total) = (0, 0, 0, 0); + + nums.sort_unstable(); + + while right < nums.len() { + total += nums[right]; + + while (nums[right] * (right - left + 1) as i32) - total > k { + total -= nums[left]; + left += 1; + } + + res = res.max(right - left + 1); + right += 1; + } + + res as i32 + } +}