From d8eddb931090b9cf80b45c7dea6cdb19440a541b Mon Sep 17 00:00:00 2001 From: YDZ Date: Mon, 16 Dec 2019 11:00:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20problem=201154?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../1154. Day of the Year.go | 11 ++++ .../1154. Day of the Year_test.go | 57 +++++++++++++++++ Algorithms/1154. Day of the Year/README.md | 62 +++++++++++++++++++ 3 files changed, 130 insertions(+) create mode 100644 Algorithms/1154. Day of the Year/1154. Day of the Year.go create mode 100644 Algorithms/1154. Day of the Year/1154. Day of the Year_test.go create mode 100755 Algorithms/1154. Day of the Year/README.md diff --git a/Algorithms/1154. Day of the Year/1154. Day of the Year.go b/Algorithms/1154. Day of the Year/1154. Day of the Year.go new file mode 100644 index 00000000..e44bd883 --- /dev/null +++ b/Algorithms/1154. Day of the Year/1154. Day of the Year.go @@ -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 +} diff --git a/Algorithms/1154. Day of the Year/1154. Day of the Year_test.go b/Algorithms/1154. Day of the Year/1154. Day of the Year_test.go new file mode 100644 index 00000000..d9d83b60 --- /dev/null +++ b/Algorithms/1154. Day of the Year/1154. Day of the Year_test.go @@ -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") +} diff --git a/Algorithms/1154. Day of the Year/README.md b/Algorithms/1154. Day of the Year/README.md new file mode 100755 index 00000000..24109a83 --- /dev/null +++ b/Algorithms/1154. Day of the Year/README.md @@ -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 + + + + + +## 解题思路 + +- 给出一个时间字符串,求出这一天是这一年当中的第几天。 +- 简单题。依照题意处理即可。