https://leetcode.com/problems/day-of-the-year/description/ | Easy |
---|
Дана дата в формате строки YYYY-MM-DD
. Верни порядковый номер дня в этом году.
Input:
date = "2019-01-09”Output:
9Explanation:
9 января — 9-й день года.
Input:
date = "2019-02-10”Output:
41
fun dayOfYear(date: String): Int {
fun isLeapYear(year: Int) = year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)
val (year, month, day) = date.split("-").map(String::toInt)
val daysInMonth = intArrayOf(31,28,31,30,31,30,31,31,30,31,30,31)
if (isLeapYear(year)) daysInMonth[1] = 29 // учитываем високосный год
var dayOfYear = day
for (i in 0 until month - 1) {
dayOfYear += daysInMonth[i] // добавляем дни прошедших месяцев
}
return dayOfYear
}
O(1), всегда обходим максимум 12 месяцев.
O(1), память постоянна.