File tree Expand file tree Collapse file tree 4 files changed +42
-4
lines changed
solution/1100-1199/1103.Distribute Candies to People Expand file tree Collapse file tree 4 files changed +42
-4
lines changed Original file line number Diff line number Diff line change 55
55
56
56
<!-- 这里可写通用的实现逻辑 -->
57
57
58
- 直接暴力模拟发糖即可。
58
+ ** 方法一:模拟**
59
+
60
+ 我们可以直接模拟每一个人分到糖果的过程,按照题目描述的规则模拟即可。
61
+
62
+ 时间复杂度 $O(\max(\sqrt{candies}, num\_ people))$,空间复杂度 $O(num\_ people)$。其中 $candies$ 为糖果数量。
59
63
60
64
<!-- tabs:start -->
61
65
@@ -68,7 +72,7 @@ class Solution:
68
72
def distributeCandies (self , candies : int , num_people : int ) -> List[int ]:
69
73
ans = [0 ] * num_people
70
74
i = 0
71
- while candies > 0 :
75
+ while candies:
72
76
ans[i % num_people] += min (candies, i + 1 )
73
77
candies -= min (candies, i + 1 )
74
78
i += 1
@@ -128,6 +132,19 @@ func min(a, b int) int {
128
132
}
129
133
```
130
134
135
+ ### ** TypeScript**
136
+
137
+ ``` ts
138
+ function distributeCandies(candies : number , num_people : number ): number [] {
139
+ const ans: number [] = Array (num_people ).fill (0 );
140
+ for (let i = 0 ; candies > 0 ; ++ i ) {
141
+ ans [i % num_people ] += Math .min (candies , i + 1 );
142
+ candies -= Math .min (candies , i + 1 );
143
+ }
144
+ return ans ;
145
+ }
146
+ ```
147
+
131
148
### ** ...**
132
149
133
150
```
Original file line number Diff line number Diff line change @@ -58,7 +58,7 @@ class Solution:
58
58
def distributeCandies (self , candies : int , num_people : int ) -> List[int ]:
59
59
ans = [0 ] * num_people
60
60
i = 0
61
- while candies > 0 :
61
+ while candies:
62
62
ans[i % num_people] += min (candies, i + 1 )
63
63
candies -= min (candies, i + 1 )
64
64
i += 1
@@ -116,6 +116,19 @@ func min(a, b int) int {
116
116
}
117
117
```
118
118
119
+ ### ** TypeScript**
120
+
121
+ ``` ts
122
+ function distributeCandies(candies : number , num_people : number ): number [] {
123
+ const ans: number [] = Array (num_people ).fill (0 );
124
+ for (let i = 0 ; candies > 0 ; ++ i ) {
125
+ ans [i % num_people ] += Math .min (candies , i + 1 );
126
+ candies -= Math .min (candies , i + 1 );
127
+ }
128
+ return ans ;
129
+ }
130
+ ```
131
+
119
132
### ** ...**
120
133
121
134
```
Original file line number Diff line number Diff line change @@ -2,7 +2,7 @@ class Solution:
2
2
def distributeCandies (self , candies : int , num_people : int ) -> List [int ]:
3
3
ans = [0 ] * num_people
4
4
i = 0
5
- while candies > 0 :
5
+ while candies :
6
6
ans [i % num_people ] += min (candies , i + 1 )
7
7
candies -= min (candies , i + 1 )
8
8
i += 1
Original file line number Diff line number Diff line change
1
+ function distributeCandies ( candies : number , num_people : number ) : number [ ] {
2
+ const ans : number [ ] = Array ( num_people ) . fill ( 0 ) ;
3
+ for ( let i = 0 ; candies > 0 ; ++ i ) {
4
+ ans [ i % num_people ] += Math . min ( candies , i + 1 ) ;
5
+ candies -= Math . min ( candies , i + 1 ) ;
6
+ }
7
+ return ans ;
8
+ }
You can’t perform that action at this time.
0 commit comments