淘天前端4.3笔试
编程题第二题没写出来,求第二题正确思路。
编程题
1. 给你一个数组,有q次查询,每次查询查区间[l,r],从l到r拼接的数是否能被3整除
(例如[11,45,14],对于区间[1,3]拼接→114514,不可被整除,输出NO否则YES)
这个,前缀和
3. 给个数组a(长度为n),要找一对数i和j(1≤i<j≤n),满足f(1,i,ai)>f(j,n,aj),求这样的(i,j)共有多少对。其中f(l,r,x)表示在[l,r]区间上出现x的次数
树状数组,不妨先设f1(i)=(1,i,ai),f2(i)=(i,n,ai)。求完f1和f2就可以转为逆序对问题了。
2. 对一个数组,要染色。有两种操作,对一个元素进行染色,或者如果一个区间内,两个端点没染色且对应下标数组值不相等也可以染色。那么,要染完这个数组,最少需要多少次操作。
没写完不过有思路,但只过了43%。
😢还是我太菜了
选择题,不会(氵)
编程题
1. 给你一个数组,有q次查询,每次查询查区间[l,r],从l到r拼接的数是否能被3整除
(例如[11,45,14],对于区间[1,3]拼接→114514,不可被整除,输出NO否则YES)
这个,前缀和
3. 给个数组a(长度为n),要找一对数i和j(1≤i<j≤n),满足f(1,i,ai)>f(j,n,aj),求这样的(i,j)共有多少对。其中f(l,r,x)表示在[l,r]区间上出现x的次数
树状数组,不妨先设f1(i)=(1,i,ai),f2(i)=(i,n,ai)。求完f1和f2就可以转为逆序对问题了。
2. 对一个数组,要染色。有两种操作,对一个元素进行染色,或者如果一个区间内,两个端点没染色且对应下标数组值不相等也可以染色。那么,要染完这个数组,最少需要多少次操作。
没写完不过有思路,但只过了43%。
😢还是我太菜了
选择题,不会(氵)
全部评论
第二题反正就是对于dp[i]=min(dp[j]+1)(j=i-1或者所有a[j+1]!=a[i]的位置)进行计算优化吧,可以用个数组存a[i]对应的dp[i-1]的最小值,然后区间查询[1,a[i]-1]和[a[i]+1,n]的最小值,离散化一下加个线段树就行
分享
请问笔试题都有什么题,纯纯写代码的算法题还是还有八股的选择题
分享
滴滴
官网直投
dp。大白话就是dpi代表前i个最少操作多少次。
状态转移就是要么dp(i-1)+1,要么是a(j+1)!=a(i)时,dp(j)+1。
感觉难点是要优化查询,暴力只能90%,线段树就ac了
分享
坏了,我的做法是很简单的分类讨论,全过,会不会是数据水
分享
相关推荐
04-20 15:10
投递美团等公司10个岗位
点赞 评论 收藏
转发
投递淘天集团等公司10个岗位 >
点赞 评论 收藏
转发
点赞 评论 收藏
转发
不愿透露姓名的神秘牛友
04-24 12:10
点赞 评论 收藏
转发