ETH官方钱包

前往
大廳
主題

LeetCode - 1185. Day of the Week 解題心得

Not In My Back Yard | 2021-04-02 00:00:06 | 巴幣 0 | 人氣 291

題目連結:


題目意譯:
給定一日期 date,回傳該日期為星期幾。

輸入給定為三個整數,依序代表著天、月以及年。

回傳答案其為下列值之一:{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}。

限制:
給定的日期保證為 1971 到 2100 之間的合法日期。



範例測資:
範例 1:
輸入: day = 31, month = 8, year = 2019
輸出: "Saturday"

範例 2:
輸入: day = 18, month = 7, year = 1999
輸出: "Sunday"

範例 3:
輸入: day = 15, month = 8, year = 1993
輸出: "Sunday"


解題思維:
參見這題的做法,不過該題只求 2011 年內的日期,而本題的年份可以從 1971 一路到 2100。

因此我們可以以任一日期為基準(例如 1971 / 1 / 1 為星期五),然後先計算給定的年份之值與基準年之間夾了多少年(基準年要算進去,但目標年分不能算),加上中間有的閏年(每個閏年多算 1 天),之後就是計算該日期於該年又過了多少天。

最後便可以從經過的天數推出給定的日期為星期幾。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。
追蹤 創作集

作者相關創作

更多創作