添加数组的元素,直到达到一个值,当达到该值时找到索引

时间:2013-08-26 16:02:45

标签: java arrays algorithm sorting math

我正在尝试添加数组的元素,直到达到给定值x,当达到该值时,tit应该返回该数组的相应索引

ArrayIndex|Value|Running total
-------------------------------
   0      |  6  | 6
   1      |  1  | 7
   2      |  6  | 13
   3      |  2  | 15

如果给定值x为14,则应返回索引3,或者如果给定值为8则应返回2,我该怎么做?我可以使用任何算法吗?

int given_number = 7;
int running_total =0;
for(int x=0;x<array.length;x++)
{
     running_total+=array[x];
     if(given_number>=running_total)
     {
          //only allow once 
          setThredhold(x);//calling a mehod



     }

2 个答案:

答案 0 :(得分:1)

您可以为此创建自定义方法:

int findIndex(int[] array, int given_number) {
    int running_total = 0;
    for(int x=0; x < array.length; x++) {
       running_total += array[x];
       if(given_number >= running_total)
          return x;
     }
     return -1; // empty array or given_number is too big
}

答案 1 :(得分:0)

这很简单直接

    int given_number = 7;
    int running_total = 0;
    int array[] = new int[23];
    for (int i = 0; i < array.length; i++) {
        if (running_total >= given_number) {
            break;
        } else {
            running_total += array[i];
        }
    }
}