轮转数组(c++)难:
法一(环形替代):先算出某一位置的元素更替一轮要循环几次(即轮回数和元素个数的最大公约数)。接着根据次数,用两个内包循环来完成目的。一个循环用于该元素的次数循环,先对元素赋值处理(因为若直接赋值,则原来的数值会被覆盖,所以再令一变量等于原来的元素,接着再赋值);另一循环用于该元素一轮的循环(交换,赋值),直至循环结束,轮回下一个元素。
法二(另设一新数组):先用for循环遍历数组,将原来的元素位置i变为i加1,得新数组。再将新数组复制到原数组即可。
轮转数组(c++)难:
法一(环形替代):先算出某一位置的元素更替一轮要循环几次(即轮回数和元素个数的最大公约数)。接着根据次数,用两个内包循环来完成目的。一个循环用于该元素的次数循环,先对元素赋值处理(因为若直接赋值,则原来的数值会被覆盖,所以再令一变量等于原来的元素,接着再赋值);另一循环用于该元素一轮的循环(交换,赋值),直至循环结束,轮回下一个元素。
法二(另设一新数组):先用for循环遍历数组,将原来的元素位置i变为i加1,得新数组。再将新数组复制到原数组即可。