我正在学习c++上的数据结构,我经历了一件对我来说很难理解或获得概念的事情。
我提出问题只是为了给给予更好的背景。
https://leetcode.com/problems/frequency-of-the-most-frequent-element/
一个元素的频率是它在数组中出现的次数。你被赋予一个整数数组nums和一个整数k。在一个操作中,你可以选择一个nums的索引,并将该索引处的元素递增1。在执行最多k次操作后,返回元素的最大可能频率。
Example 1:
Input: nums = [1,2,4], k = 5
Output: 3
Explanation: Increment the first element three times and the second element two times to
make nums = [4,4,4].
4 has a frequency of 3.
字符串
这是一个简单的例子。
class Solution {
public:
int maxFrequency(vector<int>& nums, int k) {
}
};
型
我想先通过递归来解决这个问题,但我这里的问题是,函数正在获取一个向量的引用作为参数,所以如果我改变函数内部的值,它将改变原始向量。
我无法思考如何使用不同的选择进行不同的递归,因为它不是按值传递。
帮帮忙!!
1条答案
按热度按时间aij0ehis1#
我们可以使用一个临时的vector,它与给定的vector nums具有相同的元素,然后使用递归来探索所有的可能性。我们可以尝试运行以下递归代码:
字符串
虽然代码使用了蛮力方法并且没有优化,但它为进一步解决和优化问题提供了初始逻辑。