2021复旦机试回顾
2021年复旦大学计算机专业预推免机试题,一共3道题,都比较常规,主要考察动态规划。
2021年复旦大学计算机专业预推免机试题,一共3道题,都比较常规,主要考察动态规划。
给定一个正整数数组
A
,如果A
的某个子数组中不同整数的个数恰好为K
,则称A
的这个连续、不一定独立的子数组为好子数组。(例如,
[1,2,3,1,2]
中有3
个不同的整数:1
,2
,以及3
。)返回
A
中好子数组的数目。示例 1:
1
2
3 输入:A = [1,2,1,2,3], K = 2
输出:7
解释:恰好由 2 个不同整数组成的子数组:[1,2], [2,1], [1,2], [2,3], [1,2,1], [2,1,2], [1,2,1,2].示例 2:
1
2
3 输入:A = [1,2,1,3,4], K = 3
输出:3
解释:恰好由 3 个不同整数组成的子数组:[1,2,1,3], [2,1,3], [1,3,4].提示:
1 <= A.length <= 20000
1 <= A[i] <= A.length
1 <= K <= A.length
给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次。在执行上述操作后,找到包含重复字母的最长子串的长度。
注意:字符串长度 和 k 不会超过 104。
示例 1:
1
2
3 输入:s = "ABAB", k = 2
输出:4
解释:用两个'A'替换为两个'B',反之亦然。示例 2:
1
2
3
4
5 输入:s = "AABABBA", k = 1
输出:4
解释:
将中间的一个'A'替换为'B',字符串变为 "AABBBBA"。
子串 "BBBB" 有最长重复字母, 答案为 4。
小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集 leaves, 字符串 leaves 仅包含小写字符 r 和 y, 其中字符 r 表示一片红叶,字符 y 表示一片黄叶。
出于美观整齐的考虑,小扣想要将收藏集中树叶的排列调整成「红、黄、红」三部分。每部分树叶数量可以不相等,但均需大于等于 1。每次调整操作,小扣可以将一片红叶替换成黄叶或者将一片黄叶替换成红叶。请问小扣最少需要多少次调整操作才能将秋叶收藏集调整完毕。示例 1:
输入:leaves = “rrryyyrryyyrr”
输出:2
解释:调整两次,将中间的两片红叶替换成黄叶,得到 “rrryyyyyyyyrr”
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/UlBDOe