2022/4/10拼多多后端开发笔试

这篇博客分享了作者在2022年4月10日拼多多后端开发笔试中遇到的一道题目。题目涉及用鹅卵石颜色来创建等差数列的问题。博主给出了实例和题解,解释了如何使用一个映射存储颜色及其对应的等差序列信息,处理不同情况以找出满足条件的颜色序列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

只会做第一题

1、题目:

多多有一堆鹅卵石,总数为n。多多想用这些鹅卵石装饰自己的院子,所以他将这些鹅卵石拍成了一排(位置从1开始),并且为每个鹅卵石涂上了颜色,我们使用正整数表示颜色的种关,第i个鹅卵石的颜色为ai

现在多多想知道,有哪些颜色出现在这一排鹅卵石中,并且所有出现的位置从小到大排列是-个等差数列。

2、实例:

输入

3

1 2 1

输出

2

1 2

2 0

说明:

总共出现了两种颜色满足位置等差排列。颜色1,出现了两次,位置为别为1和3,分布的间隔为2。颜色2,只出现了次,所以分布的间隔为0.

4、题解

大概就是 map<integer,List<integer>> ; key存储的是颜色值, value用一个list.,list(0)维护的是这种颜色的公差,list(1)维护的是满足等差条件下该颜色当前下标。

在遍历的过程中,当前下标对应的颜色存在三种可能:

1)map中不存在,说明是新颜色 ,加入map,初始公差为0

2)map中存在,那么先判断 取出对应map种该颜色的当前公差

        11) 若当前该颜色公差为0 ,说明该颜色之前只出现一次,更新该颜色对应当前下标i及公差

        12)若 当前颜色公差为-1,,说明 这种颜色的下标序列不构成等差 跳过继续;

        13)若当前颜色公差 和map中存的一样,说明目

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值