package com.interview.algorithms.general; /** * Created with IntelliJ IDEA. * User: stefanie * Date: 9/15/14 * Time: 2:34 PM */ public class C1_56_StationDistance { public int[] sumDistance; public int sum; public C1_56_StationDistance(int[] distance){ this.sumDistance = new int[distance.length]; int sum = 0; sumDistance[0] = 0; for(int i = 1; i < distance.length; i++){ sum += distance[i]; sumDistance[i] = sum; } this.sum = sum + distance[0]; } private boolean validStation(int i){ return (i >= 0 && i < sumDistance.length); } public int distance(int i, int j){ if(!validStation(i) || !validStation(j)) return -1; int start = Math.min(i, j); int end = Math.max(i, j); int op = sumDistance[end] - sumDistance[start]; return Math.min(op, this.sum - op); } }