数组的中心位置
时间限制:1s空间限制:256MB限定语言:不限
题目描述:
给你一个整数数组nums,请计算数组的中心位置。数组中心位置是数组的一个下标, 其左侧所有元素相乘的积等于右侧所有元素相乘的积。 数组第一个元素的左侧积为1,最后一个元素的右侧积为1如果数组有多个中心位置,应该返回最靠近左边的那一个。如果数组不存在中心位 置,返回-1。
输入描述:
输入只有一行,给出N个正整数用空格分格:nums=2536561 <= nums.length <= 1024 1 <= nums[i] <= 10
输出描述:
输出:3
解释:中心位置是3。
左侧数之积sum=nums[0]nums[1]nums[2]=253=30,
右侧数之积sum=nums[4]nums[5]=56=30,二者相 等。
示例1
输入:
2 5 3 6 5
def max_nums(nums):
res = [] # 存储符合条件的位置
for i in range(len(nums)):
left = 1 #最左侧的积标记为1
right = 1 #最右侧的积标记为1
j = i - 1 # 向左
while j >= 0:
left *= nums[j]
j -= 1
j = i + 1 # 向左
while j < len(nums):
right *= nums[j]
j += 1
if left == right:
print(left)
res.append(i) # 如果有符合的,添加到list res
res.append(-1) # -1添加到最后
return res[0] # 返回list中的第一。如果没有符合的,-1就是第一个
nums = list(map(int, input().split('')))
print(max_nums(nums))
标签:位置,中心,nums,python,res,od,数组,left
From: https://www.cnblogs.com/domm/p/18004078