反转列表:
示例:
输入: [3,4,5,6,7,8,9]
输出:[9,8,7,6,5,4,3]
解题思路:当元素的个数为奇数数时:
当元素的个数为偶数时:
def reverseList(nums):
n = len(nums)
for i in range(n // 2):#整除,7//2 为3,而range(3)为0,1,2
nums[i] ,nums[n-i-1] = nums[n-1-i],nums[i]#分别为i 和 j
print(nums)
程序中关键点:
其背后的思想为:双指针
交换次数:元素个数为偶数个时,为元素个数的一半,元素个数为奇数个时,交换个数为元素个数整除2。
a = [3,4,5,6,7,8,9]
a[len(a)-1-0]
Out[17]: 9
a[-1]
Out[18]: 9
实例结果: 奇数
def reverseList(nums):
n = len(nums)
for i in range(n // 2):
nums[i] ,nums[n-i-1] = nums[n-1-i],nums[i]#分别为i 和 j
print(nums)
reverseList(a)
[9, 8, 7, 6, 5, 4, 3]
偶数结果:
b = [3,4,5,6,7,8]
reverseList(b)
[8, 7, 6, 5, 4, 3]
此程序还可以写成:
def reverseList(nums):
i,j = 0,len(nums) - 1
while (i < j):
nums[i],nums[j] = nums[j],nums[i]
i += 1
j -= 1
print(nums)