将一个含有n个元素的数组向右循环移动k位,要求时间复杂度是O(n),且只能使用两个额外的变量
今天在复习数据结构的时候在PPT里面看到了这样的一个问题,将一个含有n个元素的数组向右循环移动k位,要求时间复杂度是O(n),且只能使用两个额外的变量,第一想法是开一个辅助的数组但是不符合题目要求,上网查询资料发现这被称为经典算法... 解决方案是先将左边K位反向,再将右边K位反向,然后再全部反向即可达到效果,总共有2n次运算,时间复杂度为O(n),不过为了符合两个额外的变量使用了C+
今天在复习数据结构的时候在PPT里面看到了这样的一个问题,将一个含有n个元素的数组向右循环移动k位,要求时间复杂度是O(n),且只能使用两个额外的变量,第一想法是开一个辅助的数组但是不符合题目要求,上网查询资料发现这被称为经典算法... 解决方案是先将左边K位反向,再将右边K位反向,然后再全部反向即可达到效果,总共有2n次运算,时间复杂度为O(n),不过为了符合两个额外的变量使用了C+