diff options
| author | 冯昶 <fengchang@novel-supertv.com> | 2023-03-06 18:41:45 +0800 |
|---|---|---|
| committer | 冯昶 <fengchang@novel-supertv.com> | 2023-03-06 18:41:45 +0800 |
| commit | 849fbc07ea10ad83d018bccc357c758e8855474e (patch) | |
| tree | f3a77db28df57c8507010d1983f8dfe16eb07737 /challenge-206/lubos-kolouch/java/ch-1.java | |
| parent | d2cca4f3533f095d018affa34893ac385b6b02af (diff) | |
| parent | d75c83429332efc88f29eee14f988b199f2fa10c (diff) | |
| download | perlweeklychallenge-club-849fbc07ea10ad83d018bccc357c758e8855474e.tar.gz perlweeklychallenge-club-849fbc07ea10ad83d018bccc357c758e8855474e.tar.bz2 perlweeklychallenge-club-849fbc07ea10ad83d018bccc357c758e8855474e.zip | |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-206/lubos-kolouch/java/ch-1.java')
| -rw-r--r-- | challenge-206/lubos-kolouch/java/ch-1.java | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/challenge-206/lubos-kolouch/java/ch-1.java b/challenge-206/lubos-kolouch/java/ch-1.java new file mode 100644 index 0000000000..18d9a6fa3b --- /dev/null +++ b/challenge-206/lubos-kolouch/java/ch-1.java @@ -0,0 +1,46 @@ +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class ShortestTimeTest { + + public static int shortestTimeInMinutes(String[] times) { + int minDiff = 24 * 60; // maximum possible difference in minutes + for (int i = 0; i < times.length - 1; i++) { + for (int j = i + 1; j < times.length; j++) { + String[] parts1 = times[i].split(":"); + String[] parts2 = times[j].split(":"); + int h1 = Integer.parseInt(parts1[0]); + int m1 = Integer.parseInt(parts1[1]); + int h2 = Integer.parseInt(parts2[0]); + int m2 = Integer.parseInt(parts2[1]); + int diff = Math.abs((h1 - h2) * 60 + (m1 - m2)); + if (diff > 12 * 60) { // account for circular time + diff = 24 * 60 - diff; + } + if (diff < minDiff) { + minDiff = diff; + } + } + } + return minDiff; + } + + @Test + public void testExample1() { + String[] times = {"00:00", "23:55", "20:00"}; + assertEquals(5, shortestTimeInMinutes(times)); + } + + @Test + public void testExample2() { + String[] times = {"01:01", "00:50", "00:57"}; + assertEquals(4, shortestTimeInMinutes(times)); + } + + @Test + public void testExample3() { + String[] times = {"10:10", "09:30", "09:00", "09:55"}; + assertEquals(15, shortestTimeInMinutes(times)); + } +} |
