Rust: codewars 的Count of positives / sum of negatives
这道题非常容易,但是,有一些用法值得我们学习。
题目要求:
求一个数字向量中正数的个数,以及负数的和。
一、解法
fn count_positives_sum_negatives(input: Vec<i32>) -> Vec<i32> {let _up =input.iter().filter(|&x| *x > 0).collect::<Vec<_>>().iter().fold(0, |total, &x| total + x);let _down =input.iter().filter(|&x| *x < 0).collect::<Vec<_>>().iter().fold(0, |total, &x| total + x);vec![_up, _down]
}
我也进行了一些努力,想一步到位,但是没有成功。
如:
//以下是非有效代码 尝试1
fn count_positives_sum_negatives2(input: Vec<i32>) -> Vec<i32> {input.iter().fold((0, 0), |(mut total, mut num), &x| match x > 0 {true => total += 1,_ => num += x,})
}
//以下是非有效代码 尝试2
fn count_positives_sum_negatives2(input: Vec<i32>) -> Vec<i32> {input.iter().fold((0, 0), |mut total, &x| match x > 0 {true => total.0 += 1,_ => total.1 += x,})
}
其实,尝试2有些快接近成功了……
//借鉴了codewars中其它人的解法,可以正确运行
fn count_positives_sum_negatives2(input: Vec<i32>) -> Vec<i32> {input.iter().fold(vec![0, 0], |mut total, &x| {match x > 0 {true => total[0] += 1,_ => total[1] += x,}total})
}
二、codewars精彩的解法
1、
fn count_positives_sum_negatives(input: Vec<i32>) -> Vec<i32> {if input.is_empty() {return vec![];}input.iter().fold(vec![0, 0], |mut acc, &x| {if x > 0 {acc[0] += 1;} else {acc[1] += x;}acc})
}
2、
fn count_positives_sum_negatives(input: Vec<i32>) -> Vec<i32> {if input.len() == 0 {return Vec::new()}input.into_iter().fold([0,0], |mut sum, i| {if i > 0 {sum[0] += 1} else if i < 0 {sum[1] += i}sum}).as_ref().into()
}
Rust: codewars 的Count of positives / sum of negatives相关推荐
- [LeetCode]Count of Range Sum
题目:Count of Range Sum Given an integer array nums, return the number of range sums that lie in [lowe ...
- select 1,select *,select count(),select sum(),select null
select 1 from dual where a >20 查询后返回1列,所返回的列值均为1,返回的行数等于满足条件的行数: 同理, select 常量 from - where -,查询后 ...
- SQL难点对比分析:COUNT(IF) 和 SUM(IF)的区别
COUNT(IF) 和 SUM(IF) 的区别和联系: COUNT(IF xxx, 1, 0):无视条件求和,即统计0或者1的数量(因为不论0还是1,都是不为NULL的值) SUM(xxx, 1, 0 ...
- mysql中的count函数和sum函数如果条件不符合返回什么
1.count函数返回:0 2.sum函数返回:空字符串
- MySQL中count方法和sum方法查询条件错误时返回结果
1.count的结果如下图 2.sum的结果如下: 由图可知,count返回的是0,sum什么都没有返回
- avg最多用多少列 mysql_MySQL之聚合数据(AVG,COUNT,MAX,MIN,SUM)
1.首先我们需要了解下什么是聚合函数 聚合函数aggregation function又称为组函数.认情况下 聚合函数会对当前所在表当做一个组进行统计. 2.聚合函数的特点 1.每个组函数接收一个参数 ...
- mysql之count,max,min,sum,avg,celing,floor
系列文章 mysql之创建数据库,创建数据表 mysql之select,insert,delete,update mysql之group by,order by count 计数,经常和group b ...
- java的count函数_SQL count()函数与sum()函数
count(): COUNT() 函数返回匹配指定条件的行数.SELECT COUNT(column_name) FROM table_name COUNT(column_name) 函数返回指定列的 ...
- MySQL笔记2: count() 函数和 sum() 函数用法和区别
- 327. Count of Range Sum 区间和的个数
给定一个整数数组 nums,返回区间和在 [lower, upper] 之间的个数,包含 lower 和 upper. 区间和 S(i, j) 表示在 nums 中,位置从 i 到 j 的元素之和,包 ...
最新文章
- 安装phpredis扩展
- 【 FPGA 】FIR 滤波器之Single-rate FIR滤波器的系数数据(Filter Coefficient Data)
- IKE IPSEC ×××
- 童话镇计算机乐谱,童话镇简谱(歌词)-陈一发演唱-桃李醉春风记谱
- python如何使用多态_在python 3中,如何将多态应用于类
- asp.net将内容导出到Excel,Table表格数据(html)导出EXCEL
- 【jackson 异常】com.fasterxml.jackson.databind.JsonMappingException异常处理
- matlab阿卡曼公式,阿克曼函数--一个计算方法
- 基于python实现细胞自动机
- Houdini 地形知识点
- 技术架构图-Java技术栈
- 高中计算机教室标语,高中教室宣传标语
- 引流脚本是什么意思,比邻引流脚本何如多开?
- 深入了解Element Form表单动态验证问题
- Problem G: 测量湖泊的平均水深
- scrapy框架下的豆瓣电影评论爬取以及登录,以及生成词云和柱状图
- 什么是RNN?一文看懂强大的循环神经网络(Recurrent Neural Network, RNN)
- 有道云笔记中markdown插入本地图片(绝对路径)后无法显示图片问题
- U盘数据加密--Bitlocker
- FocusBI:租房分析星型模型