Skip to content

Commit 59f298d

Browse files
committed
20220104
1 parent f556448 commit 59f298d

File tree

3 files changed

+221
-0
lines changed

3 files changed

+221
-0
lines changed
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
/*
2+
* @lc app=leetcode.cn id=1185 lang=golang
3+
*
4+
* [1185] 一周中的第几天
5+
*
6+
* https://leetcode-cn.com/problems/day-of-the-week/description/
7+
*
8+
* algorithms
9+
* Easy (60.12%)
10+
* Likes: 42
11+
* Dislikes: 0
12+
* Total Accepted: 12.6K
13+
* Total Submissions: 20.8K
14+
* Testcase Example: '31\n8\n2019'
15+
*
16+
* 给你一个日期,请你设计一个算法来判断它是对应一周中的哪一天。
17+
*
18+
* 输入为三个整数:day、month 和 year,分别表示日、月、年。
19+
*
20+
* 您返回的结果必须是这几个值中的一个 {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
21+
* "Friday", "Saturday"}。
22+
*
23+
*
24+
*
25+
* 示例 1:
26+
*
27+
* 输入:day = 31, month = 8, year = 2019
28+
* 输出:"Saturday"
29+
*
30+
*
31+
* 示例 2:
32+
*
33+
* 输入:day = 18, month = 7, year = 1999
34+
* 输出:"Sunday"
35+
*
36+
*
37+
* 示例 3:
38+
*
39+
* 输入:day = 15, month = 8, year = 1993
40+
* 输出:"Sunday"
41+
*
42+
*
43+
*
44+
*
45+
* 提示:
46+
*
47+
*
48+
* 给出的日期一定是在 1971 到 2100 年之间的有效日期。
49+
*
50+
*
51+
*/
52+
53+
// @lc code=start
54+
func dayOfTheWeek(day int, month int, year int) string {
55+
t, _ := time.Parse("2006-01-02", fmt.Sprintf("%4d-%02d-%02d", year, month, day))
56+
return t.Weekday().String()
57+
}
58+
// @lc code=end
59+
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
/*
2+
* @lc app=leetcode.cn id=2022 lang=golang
3+
*
4+
* [2022] 将一维数组转变成二维数组
5+
*
6+
* https://leetcode-cn.com/problems/convert-1d-array-into-2d-array/description/
7+
*
8+
* algorithms
9+
* Easy (65.08%)
10+
* Likes: 8
11+
* Dislikes: 0
12+
* Total Accepted: 5.1K
13+
* Total Submissions: 7.8K
14+
* Testcase Example: '[1,2,3,4]\n2\n2'
15+
*
16+
* 给你一个下标从 0 开始的一维整数数组 original 和两个整数 m 和  n 。你需要使用 original 中 所有 元素创建一个 m 行 n
17+
* 列的二维数组。
18+
*
19+
* original 中下标从 0 到 n - 1 (都 包含 )的元素构成二维数组的第一行,下标从 n 到 2 * n - 1 (都 包含
20+
* )的元素构成二维数组的第二行,依此类推。
21+
*
22+
* 请你根据上述过程返回一个 m x n 的二维数组。如果无法构成这样的二维数组,请你返回一个空的二维数组。
23+
*
24+
*
25+
*
26+
* 示例 1:
27+
*
28+
* 输入:original = [1,2,3,4], m = 2, n = 2
29+
* 输出:[[1,2],[3,4]]
30+
* 解释:
31+
* 构造出的二维数组应该包含 2 行 2 列。
32+
* original 中第一个 n=2 的部分为 [1,2] ,构成二维数组的第一行。
33+
* original 中第二个 n=2 的部分为 [3,4] ,构成二维数组的第二行。
34+
*
35+
*
36+
* 示例 2:
37+
*
38+
* 输入:original = [1,2,3], m = 1, n = 3
39+
* 输出:[[1,2,3]]
40+
* 解释:
41+
* 构造出的二维数组应该包含 1 行 3 列。
42+
* 将 original 中所有三个元素放入第一行中,构成要求的二维数组。
43+
*
44+
*
45+
* 示例 3:
46+
*
47+
* 输入:original = [1,2], m = 1, n = 1
48+
* 输出:[]
49+
* 解释:
50+
* original 中有 2 个元素。
51+
* 无法将 2 个元素放入到一个 1x1 的二维数组中,所以返回一个空的二维数组。
52+
*
53+
*
54+
* 示例 4:
55+
*
56+
* 输入:original = [3], m = 1, n = 2
57+
* 输出:[]
58+
* 解释:
59+
* original 中只有 1 个元素。
60+
* 无法将 1 个元素放满一个 1x2 的二维数组,所以返回一个空的二维数组。
61+
*
62+
*
63+
*
64+
*
65+
* 提示:
66+
*
67+
*
68+
* 1 <= original.length <= 5 * 10^4
69+
* 1 <= original[i] <= 10^5
70+
* 1 <= m, n <= 4 * 10^4
71+
*
72+
*
73+
*/
74+
75+
// @lc code=start
76+
func construct2DArray(original []int, m int, n int) [][]int {
77+
aLen := len(original)
78+
res := [][]int{}
79+
if aLen != m*n{
80+
return res
81+
}
82+
for i:=0;i<m;i++{
83+
tmp := make([]int,n)
84+
for j:=0;j<n;j++{
85+
tmp[j] = original[i*n+j]
86+
}
87+
res = append(res,tmp)
88+
}
89+
return res
90+
}
91+
// @lc code=end
92+

LeetCode/all/390.消除游戏.go

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
/*
2+
* @lc app=leetcode.cn id=390 lang=golang
3+
*
4+
* [390] 消除游戏
5+
*
6+
* https://leetcode-cn.com/problems/elimination-game/description/
7+
*
8+
* algorithms
9+
* Medium (46.87%)
10+
* Likes: 242
11+
* Dislikes: 0
12+
* Total Accepted: 25.8K
13+
* Total Submissions: 42.8K
14+
* Testcase Example: '9'
15+
*
16+
* 列表 arr 由在范围 [1, n] 中的所有整数组成,并按严格递增排序。请你对 arr 应用下述算法:
17+
*
18+
*
19+
*
20+
*
21+
* 从左到右,删除第一个数字,然后每隔一个数字删除一个,直到到达列表末尾。
22+
* 重复上面的步骤,但这次是从右到左。也就是,删除最右侧的数字,然后剩下的数字每隔一个删除一个。
23+
* 不断重复这两步,从左到右和从右到左交替进行,直到只剩下一个数字。
24+
*
25+
*
26+
* 给你整数 n ,返回 arr 最后剩下的数字。
27+
*
28+
*
29+
*
30+
* 示例 1:
31+
*
32+
*
33+
* 输入:n = 9
34+
* 输出:6
35+
* 解释:
36+
* arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
37+
* arr = [2, 4, 6, 8]
38+
* arr = [2, 6]
39+
* arr = [6]
40+
*
41+
*
42+
* 示例 2:
43+
*
44+
*
45+
* 输入:n = 1
46+
* 输出:1
47+
*
48+
*
49+
*
50+
*
51+
* 提示:
52+
*
53+
*
54+
* 1 <= n <= 10^9
55+
*
56+
*
57+
*
58+
*
59+
*/
60+
61+
// @lc code=start
62+
func lastRemaining(n int) int {
63+
l,r,interval := 1,n,1
64+
for l<r-d{
65+
n
66+
}
67+
return 0
68+
}
69+
// @lc code=end
70+

0 commit comments

Comments
 (0)