mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2026-03-13 10:02:05 +08:00
添加 problem 1154
This commit is contained in:
11
Algorithms/1154. Day of the Year/1154. Day of the Year.go
Normal file
11
Algorithms/1154. Day of the Year/1154. Day of the Year.go
Normal file
@@ -0,0 +1,11 @@
|
||||
package leetcode
|
||||
|
||||
import "time"
|
||||
|
||||
func dayOfYear(date string) int {
|
||||
first := date[:4] + "-01-01"
|
||||
firstDay, _ := time.Parse("2006-01-02", first)
|
||||
dateDay, _ := time.Parse("2006-01-02", date)
|
||||
duration := dateDay.Sub(firstDay)
|
||||
return int(duration.Hours())/24 + 1
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package leetcode
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
type question1154 struct {
|
||||
para1154
|
||||
ans1154
|
||||
}
|
||||
|
||||
// para 是参数
|
||||
// one 代表第一个参数
|
||||
type para1154 struct {
|
||||
one string
|
||||
}
|
||||
|
||||
// ans 是答案
|
||||
// one 代表第一个答案
|
||||
type ans1154 struct {
|
||||
one int
|
||||
}
|
||||
|
||||
func Test_Problem1154(t *testing.T) {
|
||||
|
||||
qs := []question1154{
|
||||
|
||||
question1154{
|
||||
para1154{"2019-01-09"},
|
||||
ans1154{9},
|
||||
},
|
||||
|
||||
question1154{
|
||||
para1154{"2019-02-10"},
|
||||
ans1154{41},
|
||||
},
|
||||
|
||||
question1154{
|
||||
para1154{"2003-03-01"},
|
||||
ans1154{60},
|
||||
},
|
||||
|
||||
question1154{
|
||||
para1154{"2004-03-01"},
|
||||
ans1154{61},
|
||||
},
|
||||
}
|
||||
|
||||
fmt.Printf("------------------------Leetcode Problem 1154------------------------\n")
|
||||
|
||||
for _, q := range qs {
|
||||
_, p := q.ans1154, q.para1154
|
||||
fmt.Printf("【input】:%v 【output】:%v\n", p, dayOfYear(p.one))
|
||||
}
|
||||
fmt.Printf("\n\n\n")
|
||||
}
|
||||
62
Algorithms/1154. Day of the Year/README.md
Executable file
62
Algorithms/1154. Day of the Year/README.md
Executable file
@@ -0,0 +1,62 @@
|
||||
# [1154. Day of the Year](https://leetcode.com/problems/day-of-the-year/)
|
||||
|
||||
|
||||
## 题目:
|
||||
|
||||
Given a string `date` representing a [Gregorian calendar](https://en.wikipedia.org/wiki/Gregorian_calendar) date formatted as `YYYY-MM-DD`, return the day number of the year.
|
||||
|
||||
**Example 1:**
|
||||
|
||||
Input: date = "2019-01-09"
|
||||
Output: 9
|
||||
Explanation: Given date is the 9th day of the year in 2019.
|
||||
|
||||
**Example 2:**
|
||||
|
||||
Input: date = "2019-02-10"
|
||||
Output: 41
|
||||
|
||||
**Example 3:**
|
||||
|
||||
Input: date = "2003-03-01"
|
||||
Output: 60
|
||||
|
||||
**Example 4:**
|
||||
|
||||
Input: date = "2004-03-01"
|
||||
Output: 61
|
||||
|
||||
**Constraints:**
|
||||
|
||||
- `date.length == 10`
|
||||
- `date[4] == date[7] == '-'`, and all other `date[i]`'s are digits
|
||||
- `date` represents a calendar date between Jan 1st, 1900 and Dec 31, 2019.
|
||||
|
||||
## 题目大意
|
||||
|
||||
|
||||
实现一个 MajorityChecker 的类,它应该具有下述几个 API:
|
||||
|
||||
- MajorityChecker(int[] arr) 会用给定的数组 arr 来构造一个 MajorityChecker 的实例。
|
||||
- int query(int left, int right, int threshold) 有这么几个参数:
|
||||
- 0 <= left <= right < arr.length 表示数组 arr 的子数组的长度。
|
||||
- 2 * threshold > right - left + 1,也就是说阈值 threshold 始终比子序列长度的一半还要大。
|
||||
|
||||
每次查询 query(...) 会返回在 arr[left], arr[left+1], ..., arr[right] 中至少出现阈值次数 threshold 的元素,如果不存在这样的元素,就返回 -1。
|
||||
|
||||
提示:
|
||||
|
||||
- 1 <= arr.length <= 20000
|
||||
- 1 <= arr[i] <= 20000
|
||||
- 对于每次查询,0 <= left <= right < len(arr)
|
||||
- 对于每次查询,2 * threshold > right - left + 1
|
||||
- 查询次数最多为 10000
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## 解题思路
|
||||
|
||||
- 给出一个时间字符串,求出这一天是这一年当中的第几天。
|
||||
- 简单题。依照题意处理即可。
|
||||
Reference in New Issue
Block a user