标题:用C#找出最大子分式,求完整代码
只看楼主
zljskm
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-12-4
结帖率:0
已结贴  问题点数:20 回复次数:3 
用C#找出最大子分式,求完整代码
有这样一组数{12,4,5,6,5,8,10,7,16,14,18,30},找

出这组数的最大子分式。子分式的定义:从这组数的第一个数开始连

续的升序直到出现不符合的数结束,这样的一组数为子分式。例如{2
,3,4,5,4,6,3}这组子分式为{2,3,4,5}{4,6}{3}。


就是把这个数组先分成五个子分式{12},{4,5,6},{5,8,10},{7,16,},{14,18,30},
然后根据数组长度比较选出最长的,最后的答案要是{4,5,6},{5,8,10},{14,18,30},求代码,求大神帮忙,谢谢
2015-12-04 13:22
leisiege
Rank: 4
等 级:业余侠客
威 望:8
帖 子:95
专家分:235
注 册:2015-10-22
得分:20 
回复 楼主 zljskm
输入是数组。输出是数组集合是吧?我觉得用list<int>来做比较好。我去想想
2015-12-07 12:38
leisiege
Rank: 4
等 级:业余侠客
威 望:8
帖 子:95
专家分:235
注 册:2015-10-22
得分:0 
程序代码:
class MyMath
    {
        public static List<List<int>> DivideList(List<int> list)
        {
            List<List<int>> newList = new List<List<int>>();
            List<int> subList = new List<int>();
            subList.Add(list[0]);
            for (var i = 1; i < list.Count; i++)
            {
                if (list[i] > list[i - 1])
                {
                    subList.Add(list[i]);
                }
                else
                {
                    newList.Add(subList);
                    subList.Clear();
                    subList.Add(list[i]);
                }
            }
            newList.Add(subList);
            return newList;
        }
        public static List<int> GetLongestList(List<List<int>> newList)
        {
            List<int> list = new List<int>();
            list = newList[0];
            for (var i = 1; i < newList.Count; i++)
            {
                if (newList[i].Count > list.Count)
                {
                    list = newList[i];
                }
            }
            return list;
        }
        public static List<int> GetLongestListFromList(List<int> list)
        {
            return GetLongestList(DivideList(list));
        }
    }
2015-12-07 13:03
leisiege
Rank: 4
等 级:业余侠客
威 望:8
帖 子:95
专家分:235
注 册:2015-10-22
得分:0 
这个是类。第一个是分割list。第二个是找最大的list。第三个是前面2个方法放一起了。再主进程调用就行了
2015-12-07 13:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-459881-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016651 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved