Skip to content

Commit 062a0de

Browse files
committed
✨2644.找出可整除性得分最大的整数
1 parent 2194ce7 commit 062a0de

File tree

3 files changed

+59
-0
lines changed

3 files changed

+59
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@
133133
- [2578.最小和分割](leetcode/easy/t2578/solution.go))
134134
- [2586.统计范围内的元音字符串数](leetcode/easy/t2586/solution.go)
135135
- [2609.最长平衡子字符串](leetcode/easy/t2609/solution.go)
136+
- [2644.找出可整除性得分最大的整数](leetcode/easy/t2644/solution.go)
136137
- [2656.K 个元素的最大和](leetcode/easy/t2656/solution.go)
137138
- [2706.购买两块巧克力](leetcode/easy/t2706/solution.go)
138139
- [2739.总行驶距离](leetcode/easy/t2739/solution.go)

leetcode/easy/t2644/solution.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package t2644
2+
3+
// 2644. 找出可整除性得分最大的整数
4+
// https://leetcode.cn/problems/find-the-maximum-divisibility-score
5+
func maxDivScore(nums []int, divisors []int) int {
6+
res, res_count := divisors[0], 0
7+
for _, value := range divisors {
8+
count := 0
9+
for _, num := range nums {
10+
if num%value == 0 { // 整除
11+
count++
12+
}
13+
}
14+
if count > res_count || (count == res_count && value < res) {
15+
res = value
16+
res_count = count
17+
}
18+
}
19+
return res
20+
}

leetcode/easy/t2644/solution_test.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package t2644
2+
3+
import "testing"
4+
5+
func TestMaxDivScore(t *testing.T) {
6+
tests := []struct {
7+
name string
8+
nums []int
9+
divisors []int
10+
want int
11+
}{
12+
{
13+
name: "Case 1",
14+
nums: []int{4, 7, 9, 3, 9},
15+
divisors: []int{5, 2, 3},
16+
want: 3,
17+
},
18+
{
19+
name: "Case 2",
20+
nums: []int{20, 14, 21, 10},
21+
divisors: []int{5, 7, 5},
22+
want: 5,
23+
},
24+
{
25+
name: "Case 3",
26+
nums: []int{12},
27+
divisors: []int{10, 16},
28+
want: 10,
29+
},
30+
}
31+
for _, tt := range tests {
32+
t.Run(tt.name, func(t *testing.T) {
33+
if got := maxDivScore(tt.nums, tt.divisors); got != tt.want {
34+
t.Errorf("maxDivScore() = %v, want %v", got, tt.want)
35+
}
36+
})
37+
}
38+
}

0 commit comments

Comments
 (0)