题目地址:
https://www.lintcode.com/problem/the-months-days/description
求某年某月的天数。
如果不是 2 2 2月的话直接返回天数,否则判断一下是否是闰年之后再返回天数。代码如下:
public class Solution {
/**
* @param year: a number year
* @param month: a number month
* @return: Given the year and the month, return the number of days of the month.
*/
public int getTheMonthDays(int year, int month) {
// write your code here
int[] nums = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if (month != 2) {
return nums[month - 1];
}
return nums[month - 1] + isLeap(year);
}
private int isLeap(int year) {
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0 ? 1 : 0;
}
}
时空复杂度 O ( 1 ) O(1) O(1)。