-
Notifications
You must be signed in to change notification settings - Fork 861
/
MinimumLoss.java
46 lines (43 loc) · 1.13 KB
/
MinimumLoss.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/**
*
* Problem Statement-
* [Minimum Loss](https://www.hackerrank.com/challenges/minimum-loss/problem)
*
*/
package com.javaaid.hackerrank.solutions.algorithms.search;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
/**
* @author Kanahaiya Gupta
*
*/
public class MinimumLoss {
static int minimumLoss(long[] price) {
Map<Long,Integer> map=new HashMap<Long,Integer>();
for(int i=0;i<price.length;i++) {
map.put(price[i], i);
}
Arrays.sort(price);
long min=Long.MAX_VALUE;
for(int i=price.length-1;i>0;i--) {
long diff=price[i]-price[i-1];
if( diff<min && map.get(price[i])<map.get(price[i-1])) {
min=Math.abs(diff);
}
}
return (int) min;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
long[] price = new long[n];
for(int price_i = 0; price_i < n; price_i++){
price[price_i] = in.nextLong();
}
int result = minimumLoss(price);
System.out.println(result);
in.close();
}
}