LeetCode Day01:一年中的第几天

简介: LeetCode Day01:一年中的第几天

LeetCode Day01:一年中的第几天


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

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

实例一:

输入:date = “2019-01-09”

输出:9

实例二:

输入:date = “2019-02-10”

输出:41

实例三:

输入:date = “2019-03-01”

输出:60

实例四:

输入:date = “2004-03-01”

输出:61

提示:

date.length == 10

date[4] == date[7] == ‘-’,其它的 date 都是数字

class Solution {
    public int dayOfYear(String date) {
    int totalDays = 0;
    int year = Integer.parseInt(date.substring(0, 4));
    int month = Integer.parseInt(date.substring(5, 7));
    int day = Integer.parseInt(date.substring(8));
    int[] days = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30};
    if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)){
      days[1]+= 1;
    }
    totalDays += day;
    for (int i = 0; i < month; i++) {
      totalDays += days[i];
    }
    return totalDays;
    }
}
目录
相关文章
|
4月前
leetcode-1154:一年中的第几天
leetcode-1154:一年中的第几天
19 0
|
4月前
|
算法
leetcode-1185:一周中的第几天
leetcode-1185:一周中的第几天
30 0
|
11月前
|
Python
今天是今年的的第几天
今天是今年的的第几天
96 0
|
算法 Java 索引
《剑指offer》题解——week6
《剑指offer》题解——week6
35 0
《剑指offer》题解——week6
|
算法 Java 索引
《剑指offer》题解——week1
思路:定义一个哈希表,遍历一次数组,利用哈希表对每个元素进行标记。若当前元素被标记过了,则该元素重复。 **时间复杂度:**`O(n)` **方法二:原地交换** 主要思想是把每个数放到对应的位置上,即让 `nums[i] = i`。 前往后遍历数组中的所有数,假设当前遍历到的数是 `nums[i]=x`,那么: - 如果`x != i && nums[x] == x`,则说明 `x`出现了多次,直接返回 `x`即可; - 如果`nums[x] != x`,那我们就把 `x` 交换
53 0
《剑指offer》题解——week1
|
存储 机器学习/深度学习 算法
《剑指offer》题解——week7
《剑指offer》题解——week7
41 0
《剑指offer》题解——week7
|
Java
《剑指offer》题解——week3
《剑指offer》题解——week3
46 0
《剑指offer》题解——week3
|
机器学习/深度学习 存储 算法
《剑指offer》题解——week2
由于需要对结果进行取余,导致`不能使用动态规划`,因为取模导致了dp的运算出现了问题。dp是通过最优子问题来计算出最终结果的,而取模之后就导致计算最优子问题出现了问题,计算出来的`dp[i-j]*j`表面上可能是最大的,但是`dp[i-j]`也是经过取模运算的,从而这会导致`dp[i]`不是由前面的最优子问题推出来的。
53 0
《剑指offer》题解——week2
|
机器学习/深度学习 存储 算法
《剑指offer》题解——week4
《剑指offer》题解——week4
91 0
《剑指offer》题解——week4