我有个数组提取的问题
问题:
有一个数组A(N),该数组由正整数组成,按从小到大的顺序排列,没有重复的数
问:怎样提取该数组中的一组数,要求该组数是连续的且该组数的成员最多。
请用VB代码写,谢谢。
[解决办法]
给你个c#的,自己优化吧,list为所求
int[] arr = new int[] { 1, 2, 3, 5, 6, 7, 8,6,9, 1, 2, 3, 4, 5, 6,4,5 }; List<int> list = new List<int>(); List<int> templist = new List<int>(); templist.Add(arr[0]); for (int i = 1; i < arr.Length; i++) { if (arr[i] - arr[i - 1] == 1) { templist.Add(arr[i]); if (i == arr.Length - 1) { if (templist.Count > list.Count) { list.Clear(); list.AddRange(templist); } } } else { if (templist.Count > list.Count) { list.Clear(); list.AddRange(templist); } templist.Clear(); templist.Add(arr[i]); } }
[解决办法]
http://topic.csdn.net/u/20120520/12/a129ae77-2b01-4fe9-8a8e-f296184ceed9.html
你的问题是他问题的特例,你只要最长的,以及差值为1的那个序列。
给出了C#代码,至于VB程序,你留做思考题吧。