
获得徽章 0
#刷题交流# 字符修复问题
理解问题:
我们需要找到字符串 str1 中由相同字符组成的最长连续子串的最大长度。
可以通过最多 m 次修复操作来修改字符串中的某些字符。
str2 表示哪些位置的字符可以被修改。
数据结构选择:
使用滑动窗口来动态维护一个子串,窗口内的字符可以是相同的。
使用两个指针 left 和 right 来表示窗口的左右边界。
算法步骤:
初始化两个指针 left 和 right 都指向字符串的起始位置。
遍历字符串,尝试扩展右边界 right,同时记录当前窗口内字符的频率和可以修复的字符数量。
如果修复次数超过 m,则收缩左边界 left,直到修复次数不超过 m。
在每次扩展右边界时,更新最长连续子串的长度。
关键点:
需要记录当前窗口内每个字符的频率。
需要记录当前窗口内可以修复的字符数量。
当修复次数超过 m 时,需要移动左边界来减少修复次数。
理解问题:
我们需要找到字符串 str1 中由相同字符组成的最长连续子串的最大长度。
可以通过最多 m 次修复操作来修改字符串中的某些字符。
str2 表示哪些位置的字符可以被修改。
数据结构选择:
使用滑动窗口来动态维护一个子串,窗口内的字符可以是相同的。
使用两个指针 left 和 right 来表示窗口的左右边界。
算法步骤:
初始化两个指针 left 和 right 都指向字符串的起始位置。
遍历字符串,尝试扩展右边界 right,同时记录当前窗口内字符的频率和可以修复的字符数量。
如果修复次数超过 m,则收缩左边界 left,直到修复次数不超过 m。
在每次扩展右边界时,更新最长连续子串的长度。
关键点:
需要记录当前窗口内每个字符的频率。
需要记录当前窗口内可以修复的字符数量。
当修复次数超过 m 时,需要移动左边界来减少修复次数。
展开
评论
点赞
#刷题交流# 视频推荐算法
理解问题:
我们需要计算给定数据中的80百分位数。
80百分位数是指在排序后的数据中,第80%位置的数值。
如果数据总数为N,那么80百分位数的位置是 N * 0.8,如果结果有小数,需要四舍五入。
数据结构的选择:
我们可以使用列表(list)来存储数据,因为列表可以方便地进行排序和索引操作。
算法步骤:
将输入的字符串转换为整数列表。
对列表进行排序。
计算80百分位数的位置。
根据计算出的位置,获取该位置的数值。
具体实现:
将输入的字符串按逗号分割,并将每个元素转换为整数。
使用Python的内置排序函数对列表进行排序。
计算80百分位数的位置,并使用四舍五入函数获取整数位置。
返回该位置的数值。
理解问题:
我们需要计算给定数据中的80百分位数。
80百分位数是指在排序后的数据中,第80%位置的数值。
如果数据总数为N,那么80百分位数的位置是 N * 0.8,如果结果有小数,需要四舍五入。
数据结构的选择:
我们可以使用列表(list)来存储数据,因为列表可以方便地进行排序和索引操作。
算法步骤:
将输入的字符串转换为整数列表。
对列表进行排序。
计算80百分位数的位置。
根据计算出的位置,获取该位置的数值。
具体实现:
将输入的字符串按逗号分割,并将每个元素转换为整数。
使用Python的内置排序函数对列表进行排序。
计算80百分位数的位置,并使用四舍五入函数获取整数位置。
返回该位置的数值。
展开
评论
点赞
#刷题交流# 叠盘子排序
初始化:
使用一个指针 i 来遍历数组。
使用一个列表 current_group 来存储当前正在构建的分组。
使用一个列表 result 来存储最终的分组结果。
遍历数组:
从第一个元素开始,检查当前元素是否与前一个元素连续。
如果连续,将其加入 current_group。
如果不连续,检查 current_group 的长度:
如果长度大于等于3,将其格式化为字符串并加入 result。
如果长度小于3,将 current_group 中的每个元素单独加入 result。
重置 current_group 并开始新的分组。
处理最后一个分组:
遍历结束后,检查 current_group 是否还有未处理的分组,并按照上述规则处理。
初始化:
使用一个指针 i 来遍历数组。
使用一个列表 current_group 来存储当前正在构建的分组。
使用一个列表 result 来存储最终的分组结果。
遍历数组:
从第一个元素开始,检查当前元素是否与前一个元素连续。
如果连续,将其加入 current_group。
如果不连续,检查 current_group 的长度:
如果长度大于等于3,将其格式化为字符串并加入 result。
如果长度小于3,将 current_group 中的每个元素单独加入 result。
重置 current_group 并开始新的分组。
处理最后一个分组:
遍历结束后,检查 current_group 是否还有未处理的分组,并按照上述规则处理。
展开
评论
点赞