-
Notifications
You must be signed in to change notification settings - Fork 185
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #926 from 0xff-dev/2582
Add solution and test-cases for problem 2582
- Loading branch information
Showing
3 changed files
with
58 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
# [2582.Pass the Pillow][title] | ||
|
||
## Description | ||
There are `n` people standing in a line labeled from `1` to `n`. The first person in the line is holding a pillow initially. Every second, the person holding the pillow passes it to the next person standing in the line. Once the pillow reaches the end of the line, the direction changes, and people continue passing the pillow in the opposite direction. | ||
|
||
- For example, once the pillow reaches the n<sup>th</sup> person they pass it to the `n - 1th` person, then to the `n - 2th` person and so on. | ||
|
||
Given the two positive integers `n` and `time`, return the index of the person holding the pillow after `time` seconds. | ||
|
||
**Example 1:** | ||
|
||
``` | ||
Input: n = 4, time = 5 | ||
Output: 2 | ||
Explanation: People pass the pillow in the following way: 1 -> 2 -> 3 -> 4 -> 3 -> 2. | ||
After five seconds, the 2nd person is holding the pillow. | ||
``` | ||
|
||
**Example 2:** | ||
|
||
``` | ||
Input: n = 3, time = 2 | ||
Output: 3 | ||
Explanation: People pass the pillow in the following way: 1 -> 2 -> 3. | ||
After two seconds, the 3rd person is holding the pillow. | ||
``` | ||
|
||
## 结语 | ||
|
||
如果你同我一样热爱数据结构、算法、LeetCode,可以关注我 GitHub 上的 LeetCode 题解:[awesome-golang-algorithm][me] | ||
|
||
[title]: https://leetcode.com/problems/pass-the-pillow | ||
[me]: https://github.com/kylesliu/awesome-golang-algorithm |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,19 @@ | ||
package Solution | ||
|
||
func Solution(x bool) bool { | ||
return x | ||
func Solution(n int, time int) int { | ||
need := n - 1 | ||
|
||
loop := time / need | ||
left := time % need | ||
if left != 0 { | ||
loop++ | ||
} | ||
|
||
if left == 0 { | ||
left = need | ||
} | ||
if loop&1 != 0 { | ||
return left + 1 | ||
} | ||
return need - left + 1 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters