[C#]找出最大分子式,要是用StingBuilder要怎么写,求代码

问题描述

有这样一组数{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}

解决方案

解决方案二:
StringBuilder是用来拼接string的,和你的题目没关系而且昨天那贴已经有很多答案了。
解决方案三:
循环被.当前跟下一个对比.如果+1==下一个就添加到集合中.如果不等于就开辟一个新的数组.直到结束
解决方案四:
LZ希望要的是完全能运行的,然后这三天下来估计楼主就没去看过一点资料,哎……
解决方案五:
求代码
解决方案六:
主要就是得出之后判断长度的不知道怎么写
解决方案七:
把你以用的代码贴出来StingBuilder根本就区分不出两次Append的界限
解决方案八:
引用3楼starfd的回复:

LZ希望要的是完全能运行的,然后这三天下来估计楼主就没去看过一点资料,哎……

嗯,楼主关心的是stringbuilder怎样用哇哈哈。
解决方案九:
int[]n=newint[]{12,4,5,6,5,8,10,7,16,14,18,30};ints=0;varst=newDictionary<int,int>();for(inti=1;i<=n.Length;i++){intt=i==n.Length?n[i-1]+1:n[i];if(t<n[i-1]||i==n.Length){Console.WriteLine(string.Join(",",n.Skip(s).Take(i-s)));s=i;}varb=n.Skip(s).Take(i-s);}Console.ReadKey();}}}分成子分式的我已经写出来了,谁能帮我把找出最大子分式的代码写出来?
解决方案十:
vara=newint[]{12,4,5,6,5,8,10,7,16,14,18,30};ints=0;varst=newDictionary<int,int>();for(inti=1;i<a.Length;i++){if(a[i]>a[i-1])continue;st[s]=i-s;s=i;}varp=st.Keys.Select(k=>new{k,len=st[k]}).OrderByDescending(k=>k.len).ToList();foreach(variinp){Console.WriteLine("下标:{0}长度:{1}[{2}]",i.k,i.len,string.Join(",",a.Skip(i.k).Take(i.len)));}

时间: 2024-11-03 12:15:47

[C#]找出最大分子式,要是用StingBuilder要怎么写,求代码的相关文章

如何使用java找出段首句和段尾句

问题描述 如何使用java找出段首句和段尾句 最近要实现一个自动摘要算法,需要找出段首句和段尾句,并给他们赋予权重,所以如何找出段首句和段尾句?(ps:从网上爬下来的文档分段不是很分明,但是两个句子之间空有有四个字节) 解决方案 句子之间一般是通过标点符号,或者html的p span br之类分割的,你要找到规律.

[华为机试练习题]43.在字符串中找出连续最长的数字串

题目 描述: 请一个在字符串中找出连续最长的数字串,并把这个串的长度返回:如果存在长度相同的连续数字串,返回最后一个连续数字串: 注意:数字串只需要是数字组成的就可以,并不要求顺序,比如数字串"1234"的长度就小于数字串"1359055",如果没有数字,则返回空字符串("")而不是NULL! 样例输入 abcd12345ed125ss123058789 abcd12345ss54761 样例输出 输出123058789,函数返回值9 输出547

判断单链是否循环,并且找出第一个循环节点

介绍     判断单链是否循环,并且找出第一个循环节点. 思路     [判断单链是否循环]:如果单链是循环的,那么循环部分就是封闭的.这好比一个田径运动场,当两个人跑步时,开始虽然有一定的间距,但他们迟早会相遇的. 顺其自然的我们从中抽取一个数学模型,一个是步长Steps(对应两人刚开始跑步时的间距):一个是判断单链循环的条件nodeX==nodeY(两人"相遇").     [找出第一个循环节点]:我想过好多其它方法,实现起来都比较难,后来出去骑行了两个小时,回来后就想到借助Has

[华为机试练习题]61.找出字符串中第一个出现次数最多的字符

题目 描述: 找出字符串中第一个出现次数最多的字符 详细描述: 接口说明 原型: bool FindChar(char* pInputString, char* pChar); 输入参数: char* pInputString:字符串 输出参数(指针指向的内存区域保证有效): char* pChar:出现次数最多的字符 返回值: false 异常失败 true 输出成功 练习阶段: 初级 代码 /*--------------------------------------- * 日期:2015

如何找出消耗cup的进程信息和执行的语句

进程|语句|执行 要找出最耗资源的sql,我们可以首先使用top等工具,找到最好资源的进程(记住进程号),例如,操作系统进程号为1217,然后根据这个进程号(v$process.spid)在v$process中找到进程地址(v$process.addr),然后根据这个地址在v$session中找到相应的sid(v$session.sid),然后根据这个sid找到相应的hash alue(v$session. sql_hash_value),然后根据这个hash alue在v$sqltext,$s

快速找出局域网的中毒电脑

在局域网环境中上网的朋友会经常碰到无故断线的情况,并且检查电脑也检查不出什么原因.其实出现这种情况,大部分情况下都是局域网中的某一台电脑感染了ARP类型的病毒所至.感染病毒,电脑一一杀毒,电脑过多的情况下显然很费时费力.现在就告诉你这三招两式,快速找出局域网中的"毒瘤". 小提示: ARP:Address Resolution Protocol的缩写,即地址解析协议.ARP负责将电脑的IP地址转换为对应的物理地址,即网卡的MAC地址.当发生ARP欺骗时,相关主机会收到错误的数据,从而造

JAVA函数实现任意给定一组数, 找出任意数相加之后的结果为35

用JAVA写一个函数.功能如下:任意给定一组数,例如{12,60,-8,99,15,35,17,18},找出任意数相加之后的结果为35(任意设定)的情况. 可以递归算法来解: package test1; import java.util.Arrays; public class demo { public static void main(String[] args) { String str = "12,60,-8,99,15,35,17,18,8,10,11,12"; int s

仅通过崩溃地址找出源代码的出错行

作为程序员,我们平时最担心见到的事情是什么?是内存泄漏?是界面不好看? --错啦!我相信我的看法是不会有人反对的--那就是,程序发 生了崩溃! "该程序执行了非法操作,即将关闭.请与你的软件供应商联系. ",呵呵,这句 M$ 的"名言",恐怕就是程序员最担心见到的东西了.有 的时候,自己的程序在自己的机器上运行得好好的,但是到了别人的机器上就崩溃了:有时 自己在编写和测试的过程中就莫名其妙地遇到了非法操作,但是却无法确定到底是源代码中 的哪行引起的--是不是很痛苦呢

输入n个整数并找出其中的最小k个数

题目: 输入n个整数, 找出其中的最小k个数. 使用快速排序(Quick Sort)的方法求解, 把索引值(index)指向前k个数. 代码: /* * main.cpp * * Created on: 2014.6.12 * Author: Spike */ /*eclipse cdt, gcc 4.8.1*/ #include <stdio.h> #include <stdlib.h> int RandomInRange(int min, int max) { int rand