1224 最大相等頻率

2022-08-11 08:18:10 字數 995 閱讀 8400

2020-04-02 12:15:05

問題描述:

給出乙個正整數陣列 nums,請你幫忙從該陣列中找出能滿足下面要求的最長字首,並返回其長度:

從字首中刪除乙個元素後,使得所剩下的每個數字的出現次數相同。

如果刪除這個元素後沒有剩餘元素存在,仍可認為每個數字都具有相同的出現次數(也就是 0 次)。

示例 1:

輸入:nums = [2,2,1,1,5,3,3,5]

輸出:7

解釋:對於長度為 7 的子陣列 [2,2,1,1,5,3,3],如果我們從中刪去 nums[4]=5,就可以得到 [2,2,1,1,3,3],裡面每個數字都出現了兩次。

示例 2:

輸入:nums = [1,1,1,2,2,2,3,3,3,4,4,4,5]

輸出:13

2 <= nums.length <= 10^5

1 <= nums[i] <= 10^5

問題求解:

如果正序的來求解的話,需要討論的情況會非常多,直接導致最後求解非常麻煩;這個時候我們需要做的更多的是從另乙個角度來看待問題,往往會使問題解決變得更加簡單清晰。

對於本題而言,可以反向遍歷,如果當前滿足條件直接返回結果即可。

如何對每一位進行判斷呢?對於末尾某一位,我們可以選擇刪除或者保留,我們只需要針對這兩種方案進行判別即可。

時間複雜度:o(n)

int num2freq = new int[100001];

int freq2num = new int[100001];

public int maxequalfreq(int nums)

for (int i = n - 1; i >= 1; i--)

return 1;

}

LeetCode1224 最大相等頻率 思維

給出乙個正整數陣列 nums,請你幫忙從該陣列中找出能滿足下面要求的 最長 字首,並返回其長度 從字首中 刪除乙個 元素後,使得所剩下的每個數字的出現次數相同。如果刪除這個元素後沒有剩餘元素存在,仍可認為每個數字都具有相同的出現次數 也就是 0 次 示例 1 輸入 nums 2,2,1,1,5,3,...

leetcode5225最大相等頻率

正整數陣列nums,找到滿足條件的最長字首,返回其長度。該字首滿足 刪除乙個元素後,剩下的每個數字出現的次數相同。ps 如果刪除後沒有元素存在,也可以認為每個數字有相同的次數。陣列長度 2,105 元素值 2,105 在遍歷陣列的過程中,計算每個數字的頻率對映val2freq,再統計頻率的頻率。對於...

最大頻率棧

實現 freqstack,模擬類似棧的資料結構的操作的乙個類。freqstack 有兩個函式 push int x 將整數 x 推入棧中。pop 它移除並返回棧 現最頻繁的元素。如果最頻繁的元素 不只乙個,則移除並返回最接近棧頂的元素。push 5,7,5,7,4,5 pop 返回 5,因為 5 是...