Найти дату после следующего полугодия от заданной даты
Опубликовано: 22 Сентября, 2022
Даны положительное целое число D и строка M , представляющая день и месяц високосного года, задача состоит в том, чтобы найти дату после следующего полугодия.
Примеры:
Input: D = 15, M = “January”
Output: 16 July
Explanation: The date from the 15th of January to the next half year is 16th of July.Input: D = 10, M = “October”
Output: 10 April
Подход: Поскольку високосный год содержит 366 дней , данную задачу можно решить, найдя данные после увеличения текущей даты на 183 дня . Следуйте инструкциям, чтобы решить проблему:
- Сохраните количество дней в каждом месяце в этом массиве, скажем, days[] .
- Инициализируйте переменную, скажем, curMonth как M , чтобы сохранить индекс текущего месяца.
- Инициализируйте переменную, скажем, curDate как D , чтобы сохранить текущую дату.
- Инициализируйте переменную, скажем, count как 183 , представляющую количество дней для увеличения.
- Повторяйте до тех пор, пока значение count не станет положительным, и выполните следующие шаги:
- Если значение count положительное, а curDate не превышает количество дней в curMonth, тогда уменьшите значение count на 1 и увеличьте значение curDate на 1 .
- Если значение count равно 0 , то выйти из цикла.
- Обновите значение curMonth на (curMonth + 1)%12 .
- После выполнения вышеуказанных шагов выведите в качестве результата дату, соответствующую curDate и curMonth .
Ниже приведена реализация вышеуказанного подхода:
Временная сложность: O(1)
Вспомогательное пространство: O(1)