赞
踩
如果月份大于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; }
有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。