2014-12-20 4 views
0

Пусть говорят, что я есть:Подсчитайте расположение массива в Java

int[] arr = new int[]{509,508,507,506,505,504,503}; 

the output should be: 3 

* мне нужно считать от 507 до 504 от 0 до п, где п конец, где находится 504.

* Я смущен об этом, у меня есть небольшой код, но это не то, что я хочу.

вот мой код:

int[] arr = new int[]{509,508,507,506,505,504,503}; 
int d = 504; 
int s = 507; 
int x,y = 0; 

for(x = arr[s]; x < arr[d]; x++){ 
     y += 1; 
} 

Любой человек может помочь мне об этом? Большое спасибо!

+0

Вы хотите подсчитать, сколько чисел отображается между 504 и 507, где 507 включено, а 504 нет? –

+0

Мне нужно начать отсчет от 0 до 'N', но подсчет начнется только тогда, когда будет достигнуто 507, и он остановится, чтобы подсчитать, достигнут ли 504. , так что это даст мне результат 3, но я с этим побеспокоился. Благодарю. – Polar

+0

что вы хотите сделать точно. вам нужна сортировка, а затем подсчет. –

ответ

1

Предполагая, что вы знаете, что 507 будет появляться перед 504, вы можете использовать логическую переменную:

boolean count=false; 
int y=0; 
for (int x : arr) { 
    if (x == 507) 
     count = true; 
    else if (x == 504) 
     count = false; 
    if (count) 
     y++; 
} 
System.out.println(y); 
+0

Большое спасибо за ERAN! – Polar

0

Вы можете создать функцию, которая возвращает индекс расстояния между двумя значениями в массиве или -1, если ни одного из них нет.

public static int getDistance(int[] arr, int d, int s) { 
     int indexD = -1; int indexS = -1; 

     for (int i=0; i< arr.length; i++) { 
      if (arr[i] == d) indexD = i; 
      else if (arr[i] == s) indexS = i; 

      if (indexD != -1 && indexS != -1) 
       break; 
     } 
     if (indexD == -1 || indexS == -1) return -1; 
     return Math.abs(indexD - indexS); 
} 

* это решение агностика Что касается сортированных или несортированных массивов

* Предположив ваш массив имеет уникальные значения это работает, иначе это работает только для вычисления расстояния между первым появлением каждого значения.

Смежные вопросы