leetcode 1154. 一年中的第几天

这篇具有很好参考价值的文章主要介绍了leetcode 1154. 一年中的第几天。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 题目描述
  • 解题思路
  • 执行结果
leetcode 1154. 一年中的第几天.

题目描述

  1. 一年中的第几天

给你一个字符串 date ,按 YYYY-MM-DD 格式表示一个 现行公元纪年法 日期。返回该日期是当年的第几天。

示例 1:

输入:date = "2019-01-09" 输出:9 解释:给定日期是2019年的第九天。 示例 2:

输入:date = "2019-02-10" 输出:41

提示:

date.length == 10 date[4] == date[7] == '-',其他的 date[i] 都是数字 date 表示的范围从 1900 年 1 月 1 日至 2019 年 12 月 31 日

解题思路

法1

time类型转换+.yearday获取到该年的第n天

使用 time.Parse 函数将字符串解析为时间类型。

然后,我们可以使用 t.YearDay() 方法获取该时间的年份中的天数。

  • 时间复杂度(O(1))
  • 空间复杂度(O(n))
方法2

字符串分割

  1. 将字符串以-分割为字符串数组

  2. 维护一个数组记录每个月的天数

  3. 计算总天数,mm前面几个月的天数加上该月的天数day

  4. 返回结果

注意,再year%4==0的年份2月有29天,需要再一般情况的28天的情况下加上一天

执行结果

法1

time类型转换+.yearday获取到该年的第n天

func dayOfYear(date string) int {
 layout := "2006-01-02"
 t, err := time.Parse(layout, date)
 if err != nil {
  fmt.Println("Invalid date format")
  return -1
 }

 return t.YearDay()
}

执行结果: 通过 显示详情 查看示例代码 添加备注

执行用时: 4 ms , 在所有 Go 提交中击败了 100.00% 的用户 内存消耗: 4.2 MB , 在所有 Go 提交中击败了 41.18% 的用户 通过测试用例: 10958 / 10958 炫耀一下:



本文由 mdnice 多平台发布文章来源地址https://www.toymoban.com/news/detail-498911.html

到了这里,关于leetcode 1154. 一年中的第几天的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C语言】P216 18.给出年月日,计算该日是该年的第几天

    P216 18.给出年月日,计算该日是该年的第几天 输入年月日,输出该日是该年的第几天。 算法如下: 判断该年是否为闰年,闰年2月有29天,平年2月有28天。 计算该月之前的天数总和,加上当月的天数,即为该日是该年的第几天。 例如,输入2021年3月15日,计算方法如下: 判断

    2024年02月04日
    浏览(28)
  • Java 获取日期前一年、月、日,指定日期的前几天,后几天

    LocalDate转化为指定格式的字符串 方法1 方法2

    2024年02月12日
    浏览(36)
  • 8090后一年有多少存款才算正常?存款五个等级,你在第几个等级?

    80后是指1980到1989年出生的人,到今年最小的已经33岁,最大的已经是42岁。曾经80后是被称为垮掉的一代人,而今80后成为工作的主力,有的成为富甲一方的企业家。 80后成长很不容易的一代人,80后成长的时间,我国处于快速发展时期,各种不容易都让我们80后赶上。网上说

    2024年02月08日
    浏览(87)
  • 【MySQL】计算日期是当前月份的第几周

    2993. 发生在周五的交易 I 表:Purchases Column Name Type user_id int purchase_date date amount_spend int (user_id, purchase_date, amount_spend) 是该表的主键(具有唯一值的列)。 purchase_date 的范围从 2023 年 11 月 1 日到 2023 年 11 月 30 日,并包括这两个日期。 每一行包含 user id,purchase date 和 amount spend。

    2024年01月24日
    浏览(25)
  • Spark SQL 每年的1月1日算当年的第一个自然周, 给出日期,计算是本年的第几周

    按每年的1月1日算当年的第一个自然周 (遇到跨年也不管,如果1月1日是周三,那么到1月5号(周日)算是本年的第一个自然周, 如果按周一是一周的第一天) 计算是本年的第几周,那么 spark sql 如何写 ? 难点 : Spark SQL 的 DAYOFWEEK 函数返回的每周第一天是周日。 边界值的处理,即

    2024年02月04日
    浏览(29)
  • 【LeetCode: 215. 数组中的第K个最大元素 + 堆】

    🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文

    2024年01月19日
    浏览(35)
  • leetcode做题笔记215. 数组中的第K个最大元素

    给定整数数组  nums  和整数  k ,请返回数组中第  k  个最大的元素。 请注意,你需要找的是数组排序后的第  k  个最大的元素,而不是第  k  个不同的元素。 你必须设计并实现时间复杂度为  O(n)  的算法解决此问题。 示例 1: 示例 2: c++解法 本题要求第k大的元素,利用

    2024年02月05日
    浏览(41)
  • 老卫带你学---leetcode刷题(215. 数组中的第K个最大元素)

    给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 堆排序 对每个元素入堆,然后pop出来k-1个 这里需要注意,默认堆为最

    2024年02月07日
    浏览(34)
  • 【LeetCode】917. 仅仅反转字母、387. 字符串中的第一个唯一字符

     作者:小卢   专栏:《Leetcode》 喜欢的话:世间因为少年的挺身而出,而更加瑰丽。                                  ——《人民日报》 目录  917. 仅仅反转字母  387. 字符串中的第一个唯一字符 917. 仅仅反转字母  题目描述: 给你一个字符串  s  ,根据下述规则反转

    2023年04月12日
    浏览(45)
  • 数据结构与算法之堆: Leetcode 215. 数组中的第K个最大元素 (Typescript版)

    数组中的第K个最大元素 https://leetcode.cn/problems/kth-largest-element-in-an-array/ 描述 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包