【发布时间】:2019-09-05 18:52:26
【问题描述】:
我正在研究的逻辑:
我正在尝试打印更改点的结果。
趋势变化点是数组改变其方向并从递增到递减或从递减到递增顺序的那些点。
我应该得到:11 8 5 10,但我只得到了一部分。 **我的方法是正确的方法吗?*
numberss = [1,4,9,11,8,3,2,5,10]
trendpoints(numberss,len(numberss))
def trendpoints(number_array, length):
print("length", length)
print(number_array)
# -1 on the array because we dont need to jump to the last number (fake fix)
for num in range(1, length-1):
# check last, current and next
# if current greater then current and less then next
# [1,4,9,11,8,3,2,5,10]
# 11 hit 8 CHANGE UP print both
if num <= length:
#print(number_array[num-1])
#print(number_array[num])
#print(number_array[num+1])
# 9 11 8
# 11 > 9
# 11 < 8
# 2 5 10
# 2 < 5
# 10 > 5
if ((number_array[num] > number_array[num-1] and number_array[num] > number_array[num+1])
or (number_array[num] < number_array[num-1] and number_array[num] > number_array[num+1])):
#print("CHANGE")
print(number_array[num])
#print(number_array[num+1])
print("---")
我的结果:
length 9
[1, 4, 9, 11, 8, 3, 2, 5, 10]
---
---
11
---
8
---
3
---
---
---
【问题讨论】:
-
为什么 8 和 10 包含在您的预期结果中?它从增加变为减少(和相反)的唯一 2 次是 11 和 2。
标签: python arrays python-3.x arraylist