专栏名称: 算法与数据结构
算法与数据结构知识、资源分享
今天看啥  ›  专栏  ›  算法与数据结构

百度2023秋招面试算法真题解析

算法与数据结构  · 公众号  · 算法  · 2024-06-29 11:12

文章预览

来自公众号: 吴师兄学算法 题目描述 小红有一个长度为 n 的排列,她可以选择两个位置,然后交换两个位置的数。 她想知道能否通过最多一次交换,使得存在一个连续子段,是长度为 k 的排列。 排列是指一个长度为  len  的整数数组,数组中包含 1 到 len 的每个数,且每个数只出现一次。 输入描述 第一行两个整数 n,k ,表示排列长度和连续子段长度。 第二行 n 个整数 a1, a2, ..., an ,表示排列。 1  < = k  < = n  < = 10^5 输出描述 如果能够通过最多一次交换,存在一个连续子段是排列,输出 YES ,并输出交换的位置:先输出一个整数 x (0 < = x < = 1) ,然后输出 x 行,每行两个整数 u, v ,表示交换位置 u, v (u < v) 否则输出 NO 。 示例 输入 5 3 1 2 3 4 5 输出 YES 0 解题思路 本题看似很复杂,实际上由于我们要找的是一个固定长度为 k 的滑动窗口,因此可以 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览