当前位置: 首页 > news >正文

LeetCode 1185. 一周中的第几天

一、题目

1、题目描述

给你一个日期,请你设计一个算法来判断它是对应一周中的哪一天。

输入为三个整数:daymonth 和 year,分别表示日、月、年。

您返回的结果必须是这几个值中的一个 {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}

2、接口描述

class Solution {
public:string dayOfTheWeek(int day, int month, int year) {}
};

3、原题链接

1185. 一周中的第几天


二、解题报告

1、思路分析

今天出这个题莫名其妙的,我们只需要找一天为基准,算出距离基准日期的天数,就能得到第几周了。根据数据范围是1971到2100之间,那么我们以1970.12.31为基准,算偏移了几天就行

或者我们也可以直接调用库函数,这也是工程中常用做法

2、复杂度

时间复杂度:O(C) 空间复杂度:O(C)

3、代码详解

​手写版
class Solution {
public:
static constexpr int days[] = { 0 , 31 , 28 , 31 , 30, 31, 30 , 31, 31 , 30 , 31 , 30 ,31};
static vector<string> week;string dayOfTheWeek(int day, int month, int year) {int s = 365 * (year - 1971) + (year - 1969) / 4;for(int i = 1 ; i < month ; i++)s += days[i];if(((!(year % 4) && year % 100) || year % 400 == 0) && month > 2)s++;s += day;return week[(s + 3) % 7];}
};
vector<string> Solution::week = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};

库函数版

C++

class Solution {const string weekdays[7] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
public:string dayOfTheWeek(int day, int month, int year) {tm dt = {0, 0, 0, day, month - 1, year - 1900};time_t t = mktime(&dt);return weekdays[localtime(&t)->tm_wday];}
};

Python3

class Solution:def dayOfTheWeek(self, day: int, month: int, year: int) -> str:return datetime.datetime(year, month, day).strftime("%A")

http://www.lryc.cn/news/269674.html

相关文章:

  • 大数据学习(30)-Spark Shuffle
  • Linux部署ELK
  • Python 实现 PDF 到 Word 文档的高效转换(DOC、DOCX)
  • 【MYSQL】MYSQL 的学习教程(七)之 慢 SQL 优化思路
  • unity学习笔记----游戏练习0
  • ai概念:强人工智能介绍、迁移学习
  • go语言设计模式-单例模式
  • 超维空间S2无人机使用说明书——51、基础版——使用yolov8进行目标跟踪
  • Transformer(seq2seq、self-attention)学习笔记
  • 2023-12-29 服务器开发-centos部署ftp
  • 螺旋数字阵(100%用例)C卷 (JavaPythonNode.jsC语言C++)
  • AUTOSAR从入门到精通-网络通信(UDPNm)(二)
  • 显示器与按键(LCD 1602 + button)
  • 2020年认证杯SPSSPRO杯数学建模B题(第一阶段)分布式无线广播全过程文档及程序
  • 【CISSP学习笔记】7. 安全评估与测试
  • Gateway集成方法以及拦截器和过滤器的使用
  • 第G2周:人脸图像生成(DCGAN)
  • 【Web】Ctfshow Thinkphp5 非强制路由RCE漏洞
  • python3遇到Can‘t connect to HTTPS URL because the SSL module is not available.
  • QSPI Flash xip取指同时program过程中概率性出现usb播歌时断音
  • MySQL聚簇索引和非聚簇索引的区别
  • 【C#】蜗牛爬井问题C#控制台实现
  • IP地址的四大类型:动态IP、固定IP、实体IP、虚拟IP的区别与应用
  • Linux Debian12安装和使用ImageMagick图像处理工具 常见图片png、jpg格式转webp格式
  • JavaScript二
  • JavaScript系列——正则表达式
  • 命令行创建Vue项目
  • 01.PostgreSQL基本SELECT语句
  • UDP信号多个电脑的信息传输测试、配置指南
  • 先序+中序还原二叉树【数据结构】