Question 1 / 2 (Amazon Campus(5): completely inside interval)
Given a set of open intervals, check whether there exists an interval which is completely inside another interval. If exists, print “1”, otherwise print “0”. You just need to consider the case that all the end points are integers and there are no exactly the same open intervals.
Input:
n --- number of open intervals
a_1 b_1 a_2 b_2 ... a_n b_n ------ n open intervals (a_1, b_1) ... (a_n, b_n), in which a_i < b_i for all i
Output:
1 (meaning that there exists an interval which is completely inside another interval) or 0 (otherwise)
Sample Input 1
3
1 2 3 4 5 6
Sample Output 1
0
Sample Input 2
2
1 4 2 3
Sample Output 2
1
static int interval(int[] a) { // a : storing all the end points, in the same order as the input, that is, a_1 b_1 a_2 b_2 ... a_n b_n // return value: 1 (meaning that there exists an interval which is completely inside another interval) or 0 (otherwise) int flag = 0; for(int i=0; i<a.length-1; i+=2) { for(int j=0; j!=i&&j<a.length-1; j+=2) { if((a[i]<=a[j] && a[i+1]>=a[j+1]) || (a[j]<=a[i] && a[j+1]>=a[i+1])) { flag = 1; break; } } } return flag; }
注意:等于的情况也算全部包含。
作者:kingzone_2008 发表于2013-9-22 12:56:50 原文链接
阅读:43 评论:0 查看评论