java - Find what number it used to be before element reset -
given array size, in case array size 5.
this array contains numbers 1 5 (must contain of them)
[1 | 2 | 3 | 4 | 5]  0   1   2   3   4 and now, 1 element reset , set 0, , mission find number used before turned 0.
so have simple solution:
explained: first, loop 1 5, create inner loop check if i first loop exists in whole array, if doesn't exist, means value used before 0, because array contained numbers 1 5 or 1 100 (doesn't matter) , there's on'y 1 rested element.
code:
    int[] numbers = new int[]{1, 2, 3, 4, 5};     numbers[1] = 0;      int lost = -1;      loop:      (int = 1; <= numbers.length; i++) {         (int j = 0; j < numbers.length; j++) {             if (numbers[j] == i) {                 continue loop;             }         }         lost = i;         break loop;     }      system.out.println(lost); that solution not bad, think there's better solution, more stable.
i have thought mathematically, in our example:
1 + x + 3 + 4 + 5 = 15 x = 2 mathematically, it's easy. there way can done in programming language easy mathematically? better algorithms can think of solve question?
this works 1 element being reset. subtract each remaining element sum , ever left on have been previous number element before reset.
public static void main(string[] args) throws exception {     int sum = 15;     int[] numbers = new int[] { 1, 2, 3, 4, 5 };      numbers[4] = 0;     (int = 0; < numbers.length; i++) {         sum -= numbers[i];     }     system.out.println(sum); } results:
5
Comments
Post a Comment