Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit fac1663

Browse files
committed
feat: add solutions to lc problem: No.1318
No.1318.Minimum Flips to Make a OR b Equal to c
1 parent 72b6c6c commit fac1663

File tree

6 files changed

+190
-2
lines changed

6 files changed

+190
-2
lines changed

‎solution/1300-1399/1318.Minimum Flips to Make a OR b Equal to c/README.md‎

Lines changed: 69 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,22 +48,90 @@
4848

4949
<!-- 这里可写通用的实现逻辑 -->
5050

51+
**方法一:位运算**
52+
53+
逐位提取 a, b, c 对应二进制位,进行比较计数。
54+
5155
<!-- tabs:start -->
5256

5357
### **Python3**
5458

5559
<!-- 这里可写当前语言的特殊实现逻辑 -->
5660

5761
```python
58-
62+
class Solution:
63+
def minFlips(self, a: int, b: int, c: int) -> int:
64+
ans = 0
65+
for i in range(31):
66+
x, y, z = (a >> i) & 1, (b >> i) & 1, (c >> i) & 1
67+
if (x | y) == z:
68+
continue
69+
if x == 1 and y == 1 and z == 0:
70+
ans += 2
71+
else:
72+
ans += 1
73+
return ans
5974
```
6075

6176
### **Java**
6277

6378
<!-- 这里可写当前语言的特殊实现逻辑 -->
6479

6580
```java
81+
class Solution {
82+
public int minFlips(int a, int b, int c) {
83+
int ans = 0;
84+
for (int i = 0; i < 31; ++i) {
85+
int x = (a >> i) & 1, y = (b >> i) & 1, z = (c >> i) & 1;
86+
if ((x | y) == z) {
87+
continue;
88+
}
89+
if (x == 1 && y == 1 && z == 0) {
90+
++ans;
91+
}
92+
++ans;
93+
}
94+
return ans;
95+
}
96+
}
97+
```
98+
99+
### **C++**
100+
101+
```cpp
102+
class Solution {
103+
public:
104+
int minFlips(int a, int b, int c) {
105+
int ans = 0;
106+
for (int i = 0; i < 31; ++i)
107+
{
108+
int x = (a >> i) & 1, y = (b >> i) & 1, z = (c >> i) & 1;
109+
if ((x | y) == z) continue;
110+
if (x == 1 && y == 1 && z == 0) ++ans;
111+
++ans;
112+
}
113+
return ans;
114+
}
115+
};
116+
```
66117
118+
### **Go**
119+
120+
```go
121+
func minFlips(a int, b int, c int) int {
122+
ans := 0
123+
for i := 0; i < 31; i++ {
124+
x, y, z := (a>>i)&1, (b>>i)&1, (c>>i)&1
125+
if (x | y) == z {
126+
continue
127+
}
128+
if x == 1 && y == 1 && z == 0 {
129+
ans++
130+
}
131+
ans++
132+
}
133+
return ans
134+
}
67135
```
68136

69137
### **...**

‎solution/1300-1399/1318.Minimum Flips to Make a OR b Equal to c/README_EN.md‎

Lines changed: 65 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,77 @@ Flip operation&nbsp;consists of change&nbsp;<strong>any</strong>&nbsp;single bit
5959
### **Python3**
6060

6161
```python
62-
62+
class Solution:
63+
def minFlips(self, a: int, b: int, c: int) -> int:
64+
ans = 0
65+
for i in range(31):
66+
x, y, z = (a >> i) & 1, (b >> i) & 1, (c >> i) & 1
67+
if (x | y) == z:
68+
continue
69+
if x == 1 and y == 1 and z == 0:
70+
ans += 2
71+
else:
72+
ans += 1
73+
return ans
6374
```
6475

6576
### **Java**
6677

6778
```java
79+
class Solution {
80+
public int minFlips(int a, int b, int c) {
81+
int ans = 0;
82+
for (int i = 0; i < 31; ++i) {
83+
int x = (a >> i) & 1, y = (b >> i) & 1, z = (c >> i) & 1;
84+
if ((x | y) == z) {
85+
continue;
86+
}
87+
if (x == 1 && y == 1 && z == 0) {
88+
++ans;
89+
}
90+
++ans;
91+
}
92+
return ans;
93+
}
94+
}
95+
```
96+
97+
### **C++**
98+
99+
```cpp
100+
class Solution {
101+
public:
102+
int minFlips(int a, int b, int c) {
103+
int ans = 0;
104+
for (int i = 0; i < 31; ++i)
105+
{
106+
int x = (a >> i) & 1, y = (b >> i) & 1, z = (c >> i) & 1;
107+
if ((x | y) == z) continue;
108+
if (x == 1 && y == 1 && z == 0) ++ans;
109+
++ans;
110+
}
111+
return ans;
112+
}
113+
};
114+
```
68115
116+
### **Go**
117+
118+
```go
119+
func minFlips(a int, b int, c int) int {
120+
ans := 0
121+
for i := 0; i < 31; i++ {
122+
x, y, z := (a>>i)&1, (b>>i)&1, (c>>i)&1
123+
if (x | y) == z {
124+
continue
125+
}
126+
if x == 1 && y == 1 && z == 0 {
127+
ans++
128+
}
129+
ans++
130+
}
131+
return ans
132+
}
69133
```
70134

71135
### **...**
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class Solution {
2+
public:
3+
int minFlips(int a, int b, int c) {
4+
int ans = 0;
5+
for (int i = 0; i < 31; ++i)
6+
{
7+
int x = (a >> i) & 1, y = (b >> i) & 1, z = (c >> i) & 1;
8+
if ((x | y) == z) continue;
9+
if (x == 1 && y == 1 && z == 0) ++ans;
10+
++ans;
11+
}
12+
return ans;
13+
}
14+
};
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
func minFlips(a int, b int, c int) int {
2+
ans := 0
3+
for i := 0; i < 31; i++ {
4+
x, y, z := (a>>i)&1, (b>>i)&1, (c>>i)&1
5+
if (x | y) == z {
6+
continue
7+
}
8+
if x == 1 && y == 1 && z == 0 {
9+
ans++
10+
}
11+
ans++
12+
}
13+
return ans
14+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
class Solution {
2+
public int minFlips(int a, int b, int c) {
3+
int ans = 0;
4+
for (int i = 0; i < 31; ++i) {
5+
int x = (a >> i) & 1, y = (b >> i) & 1, z = (c >> i) & 1;
6+
if ((x | y) == z) {
7+
continue;
8+
}
9+
if (x == 1 && y == 1 && z == 0) {
10+
++ans;
11+
}
12+
++ans;
13+
}
14+
return ans;
15+
}
16+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
class Solution:
2+
def minFlips(self, a: int, b: int, c: int) -> int:
3+
ans = 0
4+
for i in range(31):
5+
x, y, z = (a >> i) & 1, (b >> i) & 1, (c >> i) & 1
6+
if (x | y) == z:
7+
continue
8+
if x == 1 and y == 1 and z == 0:
9+
ans += 2
10+
else:
11+
ans += 1
12+
return ans

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /