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. 这款软件当年有数百万用户,这是一个相当庞大的量,因为彼时网民也只有千万当量级的规模. 我是一个非常忠实的用户 ...
随机推荐
- configparser模块——用于生成和修改常见配置文档
配置文档格式 [DEFAULT] ServerAliveInterval = 45 Compression = yes CompressionLevel = 9 ForwardX11 = yes [b ...
- div固定在屏幕底部
项目中需要实现div一直显示在屏幕的底部,不管页面有多长或者多端都需要满足. 在网上找的用js实现的,移动时会闪动,效果不是特别好.也可能是没找到好的. 相比js,我更希望使用css实现 1 < ...
- HDU——2067小兔的棋盘(卡特兰数&递推DP)
小兔的棋盘 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- Master&Slave是什么?
由于前段时间公司项目比较赶,一直抽不出时间写博客,今天偷空写一篇吧.前面给大家讲解了单机版redis的基本操作,现在继续给大家讲解一下Redis的进阶部分,主从复制和读写分离. 一.Master&am ...
- JS当中利用&&和||简化代码
; ){ add_level = ; } ){ add_level = ; } ){ add_level = ; } ){ add_level = ; } else { add_level = ; } ...
- Python 使用cx_freeze 生成exe文件
在python中比较常用的python转exe方法有三种,分别是cx_freeze,py2exe,PyInstaller.py2exe恐怕是三者里面知名度最高的一个,但是同时相对来说它的打包质量恐怕也 ...
- ThinkPHP 条件是一个表里面的两个字段比较
ThinkPHP 条件是一个表里面的两个字段比较 今天群里有人问,thinkphp框架,条件是一个表里的两个字段,怎么查询. 然后就做了下测试: 比如查询出 手机号就是微信号 的用户: (1)首先,正 ...
- React项目的打包与部署到腾讯云
腾讯云送了30天的免费试用,于是有了把react项目部署到上面的想法.项目是默认生成的,只是一个页面,但是这个过程中也遇到了不少麻烦与问题.下面来具体梳理下: create-react-app 来自F ...
- Codeforces Gym101502 I.Move Between Numbers-最短路(Dijkstra优先队列版和数组版)
I. Move Between Numbers time limit per test 2.0 s memory limit per test 256 MB input standard inpu ...
- Codeforces Gym101502 B.Linear Algebra Test-STL(map)
B. Linear Algebra Test time limit per test 3.0 s memory limit per test 256 MB input standard input ...