2025/5/8 后端机考笔试java卷
#蚂蚁##蚂蚁求职进展汇总##笔试好难#
1 字符串问题 :翻转+操作+大小写 白给AC
2 绳子切分问题:给两种操作与每次操作的值,对n个点n-1条边的绳子进行操作,操作1为标记该次值的点,操作2为切断所有被标记的点并给出是否有比该次操作输入的值还长的绳子长度。 难炸了!O(n^2)不给过 呜呜呜
3 数组填值:为长度为n的数组填值,使得若任意两个下标的差值小于c,则该两个下标对应的元素不相等,每个元素都必须在小于k的正整数中选择,求解多少种数组构造方案,对答案进行10'9+7的取模。输入n,k,c 难爆了!!!!!!
有大佬有思路或者AC的话麻烦踢我让我看看呜呜呜
1 字符串问题 :翻转+操作+大小写 白给AC
2 绳子切分问题:给两种操作与每次操作的值,对n个点n-1条边的绳子进行操作,操作1为标记该次值的点,操作2为切断所有被标记的点并给出是否有比该次操作输入的值还长的绳子长度。 难炸了!O(n^2)不给过 呜呜呜
3 数组填值:为长度为n的数组填值,使得若任意两个下标的差值小于c,则该两个下标对应的元素不相等,每个元素都必须在小于k的正整数中选择,求解多少种数组构造方案,对答案进行10'9+7的取模。输入n,k,c 难爆了!!!!!!
有大佬有思路或者AC的话麻烦踢我让我看看呜呜呜
全部评论

第二题超时是因为你每次询问都要找最大值,这个操作是O(n).
你可以用链表按顺序从大到小跟踪所有片段的大小,.每次你新进行一个分割,只需要将原节点替换为两个新节点,然后让这两个节点往后转移,直到满足降序就可以. 跟堆排的思想比较像
然后询问就变成O(1)了
接好运
第二题就是一个二叉树能搞定的,节点存储区间和子树中的最大区间长度,插入的时候搜索到包含这个分割点的叶子区间,并递归更新最大区间长度。
感觉第二题要双有序集合(红线位置,段长度)降时间复杂度,但想到的时候来不及了
二三都超时了,二过了25%,三过了20%
就会个签到题
二三一直超时
蹲个答案
相关推荐