近期学习了一下erlang, 编了个小程序

算法例如以下:

把參数分为三个

当前位置的前子序列(Save)(比方 -5, 1,2,-1, _, ... ) 当前位置为_时, 前子序列就是 1,2,-1

以及此子序列的和(CurSum) ( 1,2,-1的 CurSum 是 2)

剩余的数 Rest;  剩余的数也能够表示为 [H|T] ,H是第一元素,T为剩余的元素是列表

处理步骤例如以下:

  假设 Rest 为空,说明处理完成。打印 CurSum和Save

  假设,还剩一个元素(Rest仅仅有一个元素)

       假设此元素与CurSum的和依旧是正。应该包含此元素

       反之不包含它

  Rest有多个元素

       假设此元素与CurSum的和依旧是正,应该包含此元素(存入Save, CurSum 更新为CurSum+H), 继续递归

       否则,由于增加此元素CurSum为负,对后面的序列没有贡献。应该又一次计算,在此之前,打印Save。做个了断


-module(tut1).
-export([maxlen_pos_sublist/3]). maxlen_pos_sublist(Save, CurSum, Rest) when Rest == [] -> io:format("~p~n",[{sum, CurSum}, {list,Save}]);
maxlen_pos_sublist(Save, CurSum, [H|T]) ->
case T == [] of
false ->
case CurSum+H > 0 of
true-> maxlen_pos_sublist(Save++[H],CurSum+H,T);
false-> io:format("~p~n",[{sum, CurSum}, {list,Save}]), maxlen_pos_sublist([],0,T)
end;
true ->
case CurSum+H > 0 of
true-> maxlen_pos_sublist(Save++[H],CurSum+H,[]);
false-> maxlen_pos_sublist(Save,CurSum,[])
end
end. % c(tut1).
% tut1:maxlen_pos_sublist([],0,[1]).
% tut1:maxlen_pos_sublist([],0,[1,2]).
% tut1:maxlen_pos_sublist([],0,[1,3,-6,2,5]).

erlang 小程序:整数序列,搜索和为正的最长子序列的更多相关文章

  1. 百度小程序-接入自然搜索-API提交Url-c#开发

    开发百度小程序后,接下来,人们最想做的是让百度更多的录入自家内容.因为小程序资源被索引后,才可能在搜索结果中展现. 百度也提供了小程序的自然搜索提交入口.一共有两种方式: 第一种是用已有的H5网站资源 ...

  2. 微信小程序----搜索框input回车搜索事件

    在微信小程序里的搜索框,按软键盘回车键触发搜索事件. <input type="text"  placeholder="搜索" value="{ ...

  3. 微信小程序导航:官方工具+精品教程+DEMO集合(1月7更新)

    1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=14764346784612:简易教程:https://mp.weixin.qq.com/debug ...

  4. 微信小程序 教程及示例

    作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有,转载请联系作者获得授权.微信小程序正式公测, ...

  5. 微信小程序正式上线 可置于聊天窗口顶部

    历经一年的等待后,小程序在2017年1月9日凌晨终于揭开神秘面纱,正式上线. 微信小程序推广海报 随着小程序正式上线,用户现在可以通过二维码.搜索等方式体验到开发者们开发的小程序了. 用户只要将微信更 ...

  6. 微信小程序资料集合

    一:官方地址集合: 1:官方工具:https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html?t=1476434678461 2: ...

  7. 微信小程序开发详解——小程序,大颠覆!

    微信小程序开发 联系 苏念 188.1414.7927  微信小程序系统开发 微信新功能开发 小程序开发 小程序怎么开发 app小程序开发 简化小程序开发 微信小程序定制 小程序制作 开发微信小程序  ...

  8. 3个微信小程序体验报告

    1.小程序摩拜单车.腾讯视频.JD的体报告 2.小程序的入口存在不公平 3.小程序2.0会怎么样?WSO浅谈 KEVIN常用的APP是以摩拜单车与JD商城和大众点评等,那么今天也就通过这上个进行对比 ...

  9. 张小龙的野心:用小程序重构web|小程序好处及可能的不足

    一:张小龙的野心:用小程序重构web 一 很多年以前,张小龙写了一款软件:Foxmail. 这款软件当年有数百万用户,这是一个相当庞大的量,因为彼时网民也只有千万当量级的规模. 我是一个非常忠实的用户 ...

随机推荐

  1. 理解依赖注入 for Zend framework 2

    依赖注入(Dependency Injection),也成为控制反转(Inversion of Control),一种设计模式,其目的是解除类之间的依赖关系. 假设我们需要举办一个Party,Part ...

  2. Leetcode34--->Search for a Range(在排序数组中找出给定值出现的范围)

    题目:给定一个排序数组,找出给定的target值出现的范围:算法复杂度要求在O(logn);如果没有找到,则返回[-1, -1]; 举例: For example,Given [5, 7, 7, 8, ...

  3. ranorex前一步的操作结果后一步如何调用

     if (!TestSuite.Current.Parameters.ContainsKey("Password"))TestSuite.Current.Parameters.Ad ...

  4. PHP 修改配置文件后重启命名

    centosPHP配置文件路径: /etc/php.ini 修改完配置文件后需要重启php服务: systemctl restart php-fpm

  5. 5中IO模型整理总结

    1.5中IO模型: 阻塞I/O(blocking IO) 非阻塞I/O(noblocking IO) I/O复用    (IO multiplexing ) 信号驱动I/O (signal drive ...

  6. [python学习篇][廖雪峰][4]函数--reduce

    reduce的用法.reduce把一个函数作用在一个序列[x1, x2, x3...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是: reduce(f, ...

  7. 如果奇迹有颜色,那么一定是暴力or模拟比较6

    模拟就是一个思想,给你一个东西,没有很好的算法去解决,只需要计算机去暴力,优雅的暴力就可以叫算法了 主要还是考大家的代码能力,这次题目应该不需要任何前置技能. 1001 Time Limit(Comm ...

  8. 通过FEDERATED存储引擎同步两实例间的表数据

    需求情景:实例1中A库中的三个视图是实例2中的B库所依赖的,B需要A库中三个视图的实时数据. 方案:通过FEDERATED来完成跨势力的查询FEDERATED存储引擎表只会创建表结构,不会存储表数据, ...

  9. 【bzoj4026】dC Loves Number Theory 可持久化线段树

    题目描述 dC 在秒了BZOJ 上所有的数论题后,感觉萌萌哒,想出了这么一道水题,来拯救日益枯竭的水题资源.  给定一个长度为 n的正整数序列A,有q次询问,每次询问一段区间内所有元素乘积的φ(φ(n ...

  10. 最里层的是child元素

    1. 简介A convenience widget that combines common painting, positioning, and sizing widgets. Container在 ...