Micropython学习交流群 学习QQ群:786510434 提供多种固件下载和学习交流。
Micropython-扇贝物联 QQ群:31324057 扇贝物联是一个让你与智能设备沟通更方便的物联网云平台
Micropython学习交流群 学习QQ群:468985481 学习交流ESP8266、ESP32、ESP8285、wifi模块开发交流、物联网。
Micropython老哥俩的IT农场分享QQ群:929132891 为喜欢科创制作的小白们分享一些自制的计算机软硬件免费公益课程,由两位多年从事IT研发的中年大叔发起。
数组翻转指定个数的元素
定义一个整型数组,并将指定个数的元素翻转到数组的尾部。
例如:(ar[], d, n) 将长度为 n 的 数组 arr 的前面 d 个元素翻转到数组尾部。
以下演示了将数组的前面两个元素放到数组后面。
实例 1 def leftRotate(arr, d, n): for i in range(d): leftRotatebyOne(arr, n) def leftRotatebyOne(arr, n): temp = arr[0] for i in range(n-1): arr[i] = arr[i+1] arr[n-1] = temp def printArray(arr,size): for i in range(size): print ("%d"% arr[i],end=" ") arr = [1, 2, 3, 4, 5, 6, 7] leftRotate(arr, 2, 7) printArray(arr, 7) 以上实例输出结果为: 3 4 5 6 7 1 2 实例 2 def leftRotate(arr, d, n): for i in range(gcd(d,n)): temp = arr[i] j = i while 1: k = j + d if k >= n: k = k - n if k == i: break arr[j] = arr[k] j = k arr[j] = temp def printArray(arr, size): for i in range(size): print ("%d" % arr[i], end=" ") def gcd(a, b): if b == 0: return a; else: return gcd(b, a%b) arr = [1, 2, 3, 4, 5, 6, 7] leftRotate(arr, 2, 7) printArray(arr, 7) 以上实例输出结果为: 3 4 5 6 7 1 2 实例 3 def rverseArray(arr, start, end): while (start < end): temp = arr[start] arr[start] = arr[end] arr[end] = temp start += 1 end = end-1 def leftRotate(arr, d): n = len(arr) rverseArray(arr, 0, d-1) rverseArray(arr, d, n-1) rverseArray(arr, 0, n-1) def printArray(arr): for i in range(0, len(arr)): print (arr[i], end=' ') arr = [1, 2, 3, 4, 5, 6, 7] leftRotate(arr, 2) printArray(arr) 以上实例输出结果为: 3 4 5 6 7 1 2
Copyright © 2014 ESP56.com All Rights Reserved
执行时间: 0.0081789493560791 seconds