java检查数组是否为零数组
给定一个整数数组,可以在数组中重复选择两个不同的随机项(不一定相邻),然后从每个项中减去1。这样做,一些数组可以转换为全零数组,而一些不能。如何检查数组是否可以转换为零数组?我不知道从哪里开始
例如,给出一个数组:[1,2,1,1]
- 然后选择2->1号单位[0,1,1,1]
- 选择1,1然后减去1个单位->[0,0,0,1]
- [0,0,0,1]=>;不是零数组
数组的另一个示例可以变成零数组:[1,1,2,2]
- 选择1,1,然后减去1单位->[0,0,2,2]
- 选择2,2,然后减去1单位->[0,0,1,1]
- 选择1,1,然后减去1单位->[0,0,0,0]
=>[0,0,0,0]是一个零数组
# 1 楼答案
我认为一种算法可以是根据最大和第二(或联合)最大元素来选择一对
尝试问题Ideone中的输入:
还有一个:
实际上,完全排序是不必要的,因为您只对数组中最后两个位置的值感兴趣