同时增加/减少数组中的多个值

时间:2015-09-08 19:41:56

标签: java

我有一组负整数和正整数,例如:

int[] nums = [-2, -1, 0, 5, 3]

我试图通过在最少量的步骤中加1或减1来将每个值清零。只要他们的标志相同,我就可以接受连续的数字段。例如;

Step 0: [-2,-1, 0, 5, 3]
Step 1: [-1, 0, 0, 5, 3]
Step 2: [ 0, 0, 0, 5, 3]
Step 3: [ 0, 0, 0, 4, 2]
Step 4: [ 0, 0, 0, 3, 1]
Step 5: [ 0, 0, 0, 2, 0]
Step 6: [ 0, 0, 0, 1, 0]
Step 7: [ 0, 0, 0, 0, 0] 

我迷失了如何抓住片段并同时递增/递减所有片段。任何提示或建议都非常感谢。

1 个答案:

答案 0 :(得分:2)

我觉得这是一个任务,所以这里只是一个算法,没有实际的代码:

  1. 遍历数组中的所有数字
  2. 当您找到第一个非零数字时,请记住该符号(即+-
  3. 如果您发现非零数字并且当前数字具有相同的符号,则递增/递减它(取决于符号的含义)
  4. 如果您发现非零数字并且当前号码有不同的符号,请从头开始重新开始
  5. 当你到达数组的末尾而没有找到非零数字时,你就完成了