📅  最后修改于: 2023-12-03 15:26:48.076000             🧑  作者: Mango
我们需要编写一个函数,检查是否可以通过给定的操作删除数组中所有的元素。操作包含两种:删除前一个元素和将所有元素乘以2。函数应该返回一个布尔值,表示是否可以删除所有元素。
首先需要考虑哪些情况下可以删除所有元素。
我们可以先遍历一遍数组,看看是否有正数存在。如果有,直接返回 False。如果没有,再判断是否都为负数,如果是,返回 True。
def can_remove_all(nums):
if len(nums) == 1:
return True
for i in range(len(nums)):
if nums[i] > 0:
return False
return True
assert can_remove_all([1, 2, 3]) == False
assert can_remove_all([-1, -2, -3]) == True
assert can_remove_all([1, -2, -3]) == False
assert can_remove_all([-1]) == True
assert can_remove_all([0, 0, 0]) == True
assert can_remove_all([1, 0, -1]) == False