2023.12.31
- 题目来源
- 我的题解
- 方法一 模拟
题目来源
力扣每日一题;题序:1154
我的题解
方法一 模拟
如果月份大于2,,需要判断当年是否是闰年,如果是闰年2月份需要多算一天。
具体计算:
- 先计算月的贡献(注意月份大于2时的闰年判断)
- 再计算日的贡献
时间复杂度:O(m)。月份数
空间复杂度:O(m)。月份数
public int dayOfYear(String date) {String[] myDate=date.split("-");int year=Integer.valueOf(myDate[0]);int month=Integer.valueOf(myDate[1]);int day=Integer.valueOf(myDate[2]);int[] monthDay={31,28,31,30,31,30,31,31,30,31,30,31};int res=0;//计算满月的贡献for(int i=0;i<month-1;i++){res+=monthDay[i];}//判断是不是闰年if(month>2&&((year%400==0)||(year%4==0&&year%100!=0))){res++;}//计算最后一个月的贡献res+=day;return res;}
有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~