数组的度与子数组长度
public static int degreeOfArray(List<int> arr)
{
int count = arr.Count;
int[] freQue = new int[count];
//Dictionary<int,int> freQue=new Dictionary<int , int> ();
for (int i = 0; i < count; i++)
{
//freQue.Add(i, 0);
freQue[i] = 0;
for (int j = 0; j < count; j++)
{
if ( arr[i] == arr[j])
{
freQue[i]++;
}
}
}
int max = 0;
int index = 0;
//foreach(int m in freQue)
for (int k = 0; k < freQue.Count(); k++)
{
if (freQue[k] > max)
{
max = freQue[k];
index = k;
}
}
int rightIndex = 0;
for (int x = count - 1; x >= 0; x--)
{
if (arr[x] == arr[index])
{
rightIndex = x;
}
}
return rightIndex - index + 1;
}
1 | Dictionary< int , int > frequency = new Dictionary< int , int >(); // 记录每个元素的出现次数 <br>Dictionary<int, int> firstIndex = new Dictionary<int, int>(); // 记录每个元素第一次出现的索引 <br>Dictionary<int, int> lastIndex = new Dictionary<int, int>(); // 记录每个元素最后一次出现的索引 <br>int maxFrequency = 0; // 最大出现次数 <br>foreach (int num in nums) <br>{ if (!firstIndex.ContainsKey(num)) firstIndex[num] = Array.IndexOf(nums, num); // 记录第一次出现的索引 <br>lastIndex[num] = Array.LastIndexOf(nums, num); // 记录最后一次出现的索引 <br>frequency[num] = frequency.ContainsKey(num) ? frequency[num] + 1 : 1; // 更新出现次数 <br>maxFrequency = Math.Max(maxFrequency, frequency[num]); // 更新最大出现次数 <br>} <br>int minLength = nums.Length; // 最短子数组长度 <br>foreach (var pair in frequency) <br>{ <br> if (pair.Value == maxFrequency) <br> { minLength = Math.Min(minLength, lastIndex[pair.Key] - firstIndex[pair.Key] + 1); // 计算最短子数组长度 <br> } <br>} <br>return minLength; <br>} <br>} <br>public class Program <br>{ <br> public static void Main(string[] args) <br> { <br> int[] nums = { 1, 2, 2, 3, 1, 4, 2 }; <br> ArrayDegree arrayDegree = new ArrayDegree(); <br> int minLength = arrayDegree.FindShortestSubarrayLength(nums); <br> Console.WriteLine("数组的度数为:" + minLength); <br> }<br>} |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了