Add solution 1018

This commit is contained in:
YDZ
2021-01-14 01:25:19 +08:00
parent 4067a7858d
commit e3ba2d3153
6 changed files with 470 additions and 262 deletions

524
README.md

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,10 @@
package leetcode
func prefixesDivBy5(a []int) []bool {
res, num := make([]bool, len(a)), 0
for i, v := range a {
num = (num<<1 | v) % 5
res[i] = num == 0
}
return res
}

View File

@ -0,0 +1,57 @@
package leetcode
import (
"fmt"
"testing"
)
type question1018 struct {
para1018
ans1018
}
// para 是参数
// one 代表第一个参数
type para1018 struct {
a []int
}
// ans 是答案
// one 代表第一个答案
type ans1018 struct {
one []bool
}
func Test_Problem1018(t *testing.T) {
qs := []question1018{
{
para1018{[]int{0, 1, 1}},
ans1018{[]bool{true, false, false}},
},
{
para1018{[]int{1, 1, 1}},
ans1018{[]bool{false, false, false}},
},
{
para1018{[]int{0, 1, 1, 1, 1, 1}},
ans1018{[]bool{true, false, false, false, true, false}},
},
{
para1018{[]int{1, 1, 1, 0, 1}},
ans1018{[]bool{false, false, false, false, false}},
},
}
fmt.Printf("------------------------Leetcode Problem 1018------------------------\n")
for _, q := range qs {
_, p := q.ans1018, q.para1018
fmt.Printf("【input】:%v 【output】:%v\n", p, prefixesDivBy5(p.a))
}
fmt.Printf("\n\n\n")
}

View File

@ -0,0 +1,70 @@
# [1018. Binary Prefix Divisible By 5](https://leetcode.com/problems/binary-prefix-divisible-by-5/)
## 题目
Given an array `A` of `0`s and `1`s, consider `N_i`: the i-th subarray from `A[0]` to `A[i]` interpreted as a binary number (from most-significant-bit to least-significant-bit.)
Return a list of booleans `answer`, where `answer[i]` is `true` if and only if `N_i` is divisible by 5.
**Example 1:**
```
Input: [0,1,1]
Output: [true,false,false]
Explanation:
The input numbers in binary are 0, 01, 011; which are 0, 1, and 3 in base-10. Only the first number is divisible by 5, so answer[0] is true.
```
**Example 2:**
```
Input: [1,1,1]
Output: [false,false,false]
```
**Example 3:**
```
Input: [0,1,1,1,1,1]
Output: [true,false,false,false,true,false]
```
**Example 4:**
```
Input: [1,1,1,0,1]
Output: [false,false,false,false,false]
```
**Note:**
1. `1 <= A.length <= 30000`
2. `A[i]` is `0` or `1`
## 题目大意
给定由若干 0  1 组成的数组 A。我们定义 N_i A[0] 到 A[i] 的第 i 个子数组被解释为一个二进制数从最高有效位到最低有效位。返回布尔值列表 answer只有当 N_i 可以被 5 整除时答案 answer[i] 为 true否则为 false。
## 解题思路
- 简单题。每扫描数组中的一个数字,累计转换成二进制数对 5 取余,如果余数为 0则存入 true否则存入 false。
## 代码
```go
package leetcode
func prefixesDivBy5(a []int) []bool {
res, num := make([]bool, len(a)), 0
for i, v := range a {
num = (num<<1 | v) % 5
res[i] = num == 0
}
return res
}
```

View File

@ -0,0 +1,70 @@
# [1018. Binary Prefix Divisible By 5](https://leetcode.com/problems/binary-prefix-divisible-by-5/)
## 题目
Given an array `A` of `0`s and `1`s, consider `N_i`: the i-th subarray from `A[0]` to `A[i]` interpreted as a binary number (from most-significant-bit to least-significant-bit.)
Return a list of booleans `answer`, where `answer[i]` is `true` if and only if `N_i` is divisible by 5.
**Example 1:**
```
Input: [0,1,1]
Output: [true,false,false]
Explanation:
The input numbers in binary are 0, 01, 011; which are 0, 1, and 3 in base-10. Only the first number is divisible by 5, so answer[0] is true.
```
**Example 2:**
```
Input: [1,1,1]
Output: [false,false,false]
```
**Example 3:**
```
Input: [0,1,1,1,1,1]
Output: [true,false,false,false,true,false]
```
**Example 4:**
```
Input: [1,1,1,0,1]
Output: [false,false,false,false,false]
```
**Note:**
1. `1 <= A.length <= 30000`
2. `A[i]` is `0` or `1`
## 题目大意
给定由若干 0  1 组成的数组 A。我们定义 N_i A[0] 到 A[i] 的第 i 个子数组被解释为一个二进制数从最高有效位到最低有效位。返回布尔值列表 answer只有当 N_i 可以被 5 整除时答案 answer[i] 为 true否则为 false。
## 解题思路
- 简单题。每扫描数组中的一个数字,累计转换成二进制数对 5 取余,如果余数为 0则存入 true否则存入 false。
## 代码
```go
package leetcode
func prefixesDivBy5(a []int) []bool {
res, num := make([]bool, len(a)), 0
for i, v := range a {
num = (num<<1 | v) % 5
res[i] = num == 0
}
return res
}
```

View File

@ -483,6 +483,7 @@ headless: true
- [1005.Maximize-Sum-Of-Array-After-K-Negations]({{< relref "/ChapterFour/1005.Maximize-Sum-Of-Array-After-K-Negations.md" >}})
- [1011.Capacity-To-Ship-Packages-Within-D-Days]({{< relref "/ChapterFour/1011.Capacity-To-Ship-Packages-Within-D-Days.md" >}})
- [1017.Convert-to-Base--2]({{< relref "/ChapterFour/1017.Convert-to-Base--2.md" >}})
- [1018.Binary-Prefix-Divisible-By-5]({{< relref "/ChapterFour/1018.Binary-Prefix-Divisible-By-5.md" >}})
- [1019.Next-Greater-Node-In-Linked-List]({{< relref "/ChapterFour/1019.Next-Greater-Node-In-Linked-List.md" >}})
- [1020.Number-of-Enclaves]({{< relref "/ChapterFour/1020.Number-of-Enclaves.md" >}})
- [1021.Remove-Outermost-Parentheses]({{< relref "/ChapterFour/1021.Remove-Outermost-Parentheses.md" >}})