erlang 小程序:整数序列,搜索和为正的最长子序列
近期学习了一下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 小程序:整数序列,搜索和为正的最长子序列的更多相关文章
- 百度小程序-接入自然搜索-API提交Url-c#开发
开发百度小程序后,接下来,人们最想做的是让百度更多的录入自家内容.因为小程序资源被索引后,才可能在搜索结果中展现. 百度也提供了小程序的自然搜索提交入口.一共有两种方式: 第一种是用已有的H5网站资源 ...
- 微信小程序----搜索框input回车搜索事件
在微信小程序里的搜索框,按软键盘回车键触发搜索事件. <input type="text" placeholder="搜索" value="{ ...
- 微信小程序导航:官方工具+精品教程+DEMO集合(1月7更新)
1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=14764346784612:简易教程:https://mp.weixin.qq.com/debug ...
- 微信小程序 教程及示例
作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有,转载请联系作者获得授权.微信小程序正式公测, ...
- 微信小程序正式上线 可置于聊天窗口顶部
历经一年的等待后,小程序在2017年1月9日凌晨终于揭开神秘面纱,正式上线. 微信小程序推广海报 随着小程序正式上线,用户现在可以通过二维码.搜索等方式体验到开发者们开发的小程序了. 用户只要将微信更 ...
- 微信小程序资料集合
一:官方地址集合: 1:官方工具:https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html?t=1476434678461 2: ...
- 微信小程序开发详解——小程序,大颠覆!
微信小程序开发 联系 苏念 188.1414.7927 微信小程序系统开发 微信新功能开发 小程序开发 小程序怎么开发 app小程序开发 简化小程序开发 微信小程序定制 小程序制作 开发微信小程序 ...
- 3个微信小程序体验报告
1.小程序摩拜单车.腾讯视频.JD的体报告 2.小程序的入口存在不公平 3.小程序2.0会怎么样?WSO浅谈 KEVIN常用的APP是以摩拜单车与JD商城和大众点评等,那么今天也就通过这上个进行对比 ...
- 张小龙的野心:用小程序重构web|小程序好处及可能的不足
一:张小龙的野心:用小程序重构web 一 很多年以前,张小龙写了一款软件:Foxmail. 这款软件当年有数百万用户,这是一个相当庞大的量,因为彼时网民也只有千万当量级的规模. 我是一个非常忠实的用户 ...
随机推荐
- webdriver高级应用- 测试过程中发生异常或断言失败时进行屏幕截图
封装了三个类来实现这个功能: 1.DataUtil.py 用于获取当前的日期以及时间,用于生成保存截图文件的目录名,代码如下: #encoding=utf-8 import time from dat ...
- Django--------问题:在terminal命令行创建超级用户时入到password时输入为什么没有反应?
首先如果遇到这样的问题不用担心,一般一会儿就可以解决: 其实,输入的时候并不是没有反应,只是你输入的时候命令行没有将你的输入显示出来,关键是输入行对Password:********也不是采用这种方式 ...
- Leetcode 447.回旋镖的数量
回旋镖的数量 给定平面上 n 对不同的点,"回旋镖" 是由点表示的元组 (i, j, k) ,其中 i 和 j 之间的距离和 i 和 k 之间的距离相等(需要考虑元组的顺序). 找 ...
- [转]zsh快捷键记录
转自: http://wdxtub.com/2016/02/18/oh-my-zsh/ 使用技巧 连按两次Tab会列出所有的补全列表并直接开始选择,补全项可以使用 ctrl+n/p/f/b上下左右切换 ...
- 开发者工具删除元素Delete Element
开发者工具有个很好用的功能,通过删除元素,可以查看页面哪些元素比较特殊,同时也可以排除干扰.
- hdu 2665 划分树模板题(可作为模板)
Kth number Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- Java中接口的作用
转载于:https://www.zhihu.com/question/20111251 困惑:例如我定义了一个接口,但是我在继承这个接口的类中还要写接口的实现方法,那我不如直接就在这个类中写实现方法岂 ...
- Swift UI控件详细介绍(上)
UI控件 首先介绍一下AppDelegate.swift@UIApplicationMain 调用了OC中的UIApplicationMain函数:UIApplicationMain是iOS应用程序的 ...
- 微信小程序页面跳转传参
1.传递参数方法 使用navigatior组件 <navigator url="/pages/pull/pull?title=lalla&name=cc" hov ...
- redhat安装Xvfb
1.下载xvfb的rpm包进行安装 下载rpm安装包:http://rhn.redhat.com/errata/RHBA-2013-0083.html 安装rpm包:#rpm -ivh --nodep ...