leetcode-1154:一年中的第几天

简介: leetcode-1154:一年中的第几天

题目

题目链接

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

通常情况下,我们认为 1 月 1 日是每年的第 1 天,1 月 2 日是每年的第 2 天,依此类推。每个月的天数与现行公元纪年法(格里高利历)一致。

示例 1:

输入:date = "2019-01-09"
输出:9

示例 2:

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

示例 3:

输入:date = "2003-03-01"
输出:60

示例 4:

输入:date = "2004-03-01"
输出:61

解题

方法一:

先把年月日取出来。然后判断是否为闰年。获得数组amount存放每个月的日子。

然后根据月和日计算出第几天

class Solution {
public:
    int dayOfYear(string date) {
        int year=stoi(date.substr(0,4));
        int month=stoi(date.substr(5,2));
        int day=stoi(date.substr(8,2));
        vector<int> amount={31,28,31,30,31,30,31,31,30,31,30};
        if(year%400==0||year%4==0&&year%100!=0){
            amount[1]++;
        }
        int res=0;
        for(int i=0;i<month-1;i++){
            res+=amount[i];
        }
        return res+day;
    }
};
相关文章
|
7月前
|
算法
leetcode-1185:一周中的第几天
leetcode-1185:一周中的第几天
55 0
|
2月前
蓝桥杯真题time模块详解 | 顺子日期 星期一
蓝桥杯真题time模块详解 | 顺子日期 星期一
|
Python
今天是今年的的第几天
今天是今年的的第几天
221 0
|
机器学习/深度学习 存储 算法
《剑指offer》题解——week2
由于需要对结果进行取余,导致`不能使用动态规划`,因为取模导致了dp的运算出现了问题。dp是通过最优子问题来计算出最终结果的,而取模之后就导致计算最优子问题出现了问题,计算出来的`dp[i-j]*j`表面上可能是最大的,但是`dp[i-j]`也是经过取模运算的,从而这会导致`dp[i]`不是由前面的最优子问题推出来的。
78 0
《剑指offer》题解——week2
|
机器学习/深度学习 存储 算法
《剑指offer》题解——week4
《剑指offer》题解——week4
119 0
《剑指offer》题解——week4
|
算法 Java 索引
《剑指offer》题解——week6
《剑指offer》题解——week6
61 0
《剑指offer》题解——week6
|
存储 机器学习/深度学习 算法
《剑指offer》题解——week7
《剑指offer》题解——week7
64 0
《剑指offer》题解——week7
|
Java
《剑指offer》题解——week3
《剑指offer》题解——week3
71 0
《剑指offer》题解——week3
|
算法 搜索推荐 Java
《剑指offer》题解——week5
《剑指offer》题解——week5
59 0
《剑指offer》题解——week5