summaryrefslogtreecommitdiff
path: root/AlgoDesignAndTechniqueEdxJava/sources/CoveringSegments.java
diff options
context:
space:
mode:
Diffstat (limited to 'AlgoDesignAndTechniqueEdxJava/sources/CoveringSegments.java')
-rw-r--r--AlgoDesignAndTechniqueEdxJava/sources/CoveringSegments.java108
1 files changed, 55 insertions, 53 deletions
diff --git a/AlgoDesignAndTechniqueEdxJava/sources/CoveringSegments.java b/AlgoDesignAndTechniqueEdxJava/sources/CoveringSegments.java
index 8cad411..9bf1af5 100644
--- a/AlgoDesignAndTechniqueEdxJava/sources/CoveringSegments.java
+++ b/AlgoDesignAndTechniqueEdxJava/sources/CoveringSegments.java
@@ -8,46 +8,47 @@ import java.util.Set;
public class CoveringSegments {
- public static class Segment implements Comparable<Segment> {
- int start, end;
- Segment(int start, int end){
- this.start = start;
- this.end = end;
- }
+ public static class Segment implements Comparable<Segment> {
+ int start, end;
- public int compareTo(Segment that) {
- if (this.start > that.start)
- return 1;
- if (this.start == that.start) {
- if (this.end > that.end)
- return 1;
- else
- if (this.end == that.end) {
- return 0;
- }
- else
- return -1;
- }
- return -1;
- }
-
- @Override
- public boolean equals(Object o) {
- if (o==this) return true;
- if (!(o instanceof Segment)) {
- return false;
- }
- Segment s = (Segment) o;
- return start==s.start && end == s.end;
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(start, end);
- }
+ Segment(int start, int end) {
+ this.start = start;
+ this.end = end;
+ }
+
+ public int compareTo(Segment that) {
+ if (this.start > that.start)
+ return 1;
+ if (this.start == that.start) {
+ if (this.end > that.end)
+ return 1;
+ else if (this.end == that.end) {
+ return 0;
+ } else
+ return -1;
+ }
+ return -1;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (o == this)
+ return true;
+ if (!(o instanceof Segment)) {
+ return false;
+ }
+ Segment s = (Segment) o;
+ return start == s.start && end == s.end;
+ }
- }
- public static void main(String[] args) {
+ @Override
+ public int hashCode() {
+ return Objects.hash(start, end);
+ }
+
+ }
+
+ public static void main(String[] args) {
// Scanner scanner = new Scanner(System.in);
// int n = scanner.nextInt();
// Set<Segment> segments = new HashSet<Segment>();
@@ -81,20 +82,21 @@ public class CoveringSegments {
for (int point : points) {
System.out.print(point + " ");
}
- }
- public static int[] getOptimalPoints(Segment[] s) {
- int index = 0;
- List<Integer> points = new ArrayList<Integer>();
- while (index < s.length) {
- points.add(s[index].end);
- index = index + 1;
- while (index < s.length && s[index].start <= points.get(points.size()-1).intValue()) {
- if (s[index].end < points.get(points.size()-1).intValue())
- points.set(points.size()-1, s[index].end);
- index = index + 1;
- }
- }
- return points.stream().mapToInt(i -> i).toArray();
- }
+ }
+
+ public static int[] getOptimalPoints(Segment[] s) {
+ int index = 0;
+ List<Integer> points = new ArrayList<Integer>();
+ while (index < s.length) {
+ points.add(s[index].end);
+ index = index + 1;
+ while (index < s.length && s[index].start <= points.get(points.size() - 1).intValue()) {
+ if (s[index].end < points.get(points.size() - 1).intValue())
+ points.set(points.size() - 1, s[index].end);
+ index = index + 1;
+ }
+ }
+ return points.stream().mapToInt(i -> i).toArray();
+ }
}