Skip to content

Commit e2c92c6

Browse files
committed
feat: add solutions to lc problem: No.1384
No.1384: Total Sales Amount by Year
1 parent 18638c3 commit e2c92c6

File tree

4 files changed

+116
-4
lines changed

4 files changed

+116
-4
lines changed

solution/1300-1399/1384.Total Sales Amount by Year/README.md

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,44 @@ LC Keychain 在 2019-12-01 至 2020-01-31 期间销售,该产品在2019
9393
### **SQL**
9494

9595
```sql
96-
96+
# Write your MySQL query statement below
97+
SELECT
98+
s.product_id,
99+
p.product_name,
100+
y.YEAR report_year,
101+
s.average_daily_sales * (
102+
IF (
103+
YEAR (s.period_end) > y.YEAR,
104+
y.days_of_year,
105+
dayofyear(s.period_end)
106+
) - IF (
107+
YEAR (s.period_start) < y.YEAR,
108+
1,
109+
dayofyear(s.period_start)
110+
) + 1
111+
) total_amount
112+
FROM
113+
Sales s
114+
INNER JOIN (
115+
SELECT
116+
'2018' YEAR,
117+
365 days_of_year
118+
UNION
119+
ALL
120+
SELECT
121+
'2019' YEAR,
122+
365 days_of_year
123+
UNION
124+
ALL
125+
SELECT
126+
'2020' YEAR,
127+
366 days_of_year
128+
) y ON YEAR (s.period_start) <= y.YEAR
129+
AND YEAR (s.period_end) >= y.YEAR
130+
INNER JOIN Product p ON p.product_id = s.product_id
131+
ORDER BY
132+
s.product_id,
133+
y.YEAR
97134
```
98135

99136
<!-- tabs:end -->

solution/1300-1399/1384.Total Sales Amount by Year/README_EN.md

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,44 @@ LC Keychain was sold for the period of 2019-12-01 to 2020-01-31, and there are 3
8989
### **SQL**
9090

9191
```sql
92-
92+
# Write your MySQL query statement below
93+
SELECT
94+
s.product_id,
95+
p.product_name,
96+
y.YEAR report_year,
97+
s.average_daily_sales * (
98+
IF (
99+
YEAR (s.period_end) > y.YEAR,
100+
y.days_of_year,
101+
dayofyear(s.period_end)
102+
) - IF (
103+
YEAR (s.period_start) < y.YEAR,
104+
1,
105+
dayofyear(s.period_start)
106+
) + 1
107+
) total_amount
108+
FROM
109+
Sales s
110+
INNER JOIN (
111+
SELECT
112+
'2018' YEAR,
113+
365 days_of_year
114+
UNION
115+
ALL
116+
SELECT
117+
'2019' YEAR,
118+
365 days_of_year
119+
UNION
120+
ALL
121+
SELECT
122+
'2020' YEAR,
123+
366 days_of_year
124+
) y ON YEAR (s.period_start) <= y.YEAR
125+
AND YEAR (s.period_end) >= y.YEAR
126+
INNER JOIN Product p ON p.product_id = s.product_id
127+
ORDER BY
128+
s.product_id,
129+
y.YEAR
93130
```
94131

95132
<!-- tabs:end -->
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Write your MySQL query statement below
2+
SELECT
3+
s.product_id,
4+
p.product_name,
5+
y.YEAR report_year,
6+
s.average_daily_sales * (
7+
IF (
8+
YEAR (s.period_end) > y.YEAR,
9+
y.days_of_year,
10+
dayofyear(s.period_end)
11+
) - IF (
12+
YEAR (s.period_start) < y.YEAR,
13+
1,
14+
dayofyear(s.period_start)
15+
) + 1
16+
) total_amount
17+
FROM
18+
Sales s
19+
INNER JOIN (
20+
SELECT
21+
'2018' YEAR,
22+
365 days_of_year
23+
UNION
24+
ALL
25+
SELECT
26+
'2019' YEAR,
27+
365 days_of_year
28+
UNION
29+
ALL
30+
SELECT
31+
'2020' YEAR,
32+
366 days_of_year
33+
) y ON YEAR (s.period_start) <= y.YEAR
34+
AND YEAR (s.period_end) >= y.YEAR
35+
INNER JOIN Product p ON p.product_id = s.product_id
36+
ORDER BY
37+
s.product_id,
38+
y.YEAR

solution/1300-1399/1385.Find the Distance Value Between Two Arrays/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,15 +70,15 @@
7070

7171
由于 `arr1``arr2` 的长度不超过 500,因此可以直接暴力遍历。
7272

73-
时间复杂度 $O(mn)$,其中 $m$ `arr1` 的长度,$n$ `arr2` 的长度。
73+
时间复杂度 $O(m \times n)$,其中 $m$ $n$ 分别为 `arr1` `arr2` 的长度。
7474

7575
**方法二:二分查找**
7676

7777
对于 `arr1` 中的每个元素 `a`,若在 `arr2` 中存在 `b`,使得 `b ∈ [a - d, a + d]`,那么就符合距离要求,不进行累加。
7878

7979
因此,可以先对 `arr2` 进行排序。然后对于每个元素 `a`,二分枚举 `arr2` 判断是否存在符合距离要求的 `b`
8080

81-
时间复杂度 $O((m + n)logn)$。
81+
时间复杂度 $O((m + n) \times \log n)$。
8282

8383
<!-- tabs:start -->
8484

0 commit comments

Comments
 (0)