Skip to content

Commit 0fa5409

Browse files
committed
feat: add js/ts solutions to lc problem: No.0476
1 parent 2921903 commit 0fa5409

File tree

4 files changed

+70
-0
lines changed

4 files changed

+70
-0
lines changed

solution/0400-0499/0476.Number Complement/README.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,4 +138,34 @@ var findComplement = function(num) {
138138

139139
<!-- solution:end -->
140140

141+
<!-- solution:start -->
142+
143+
### Solution 2: Bit Manipulation. Inversion + AND
144+
145+
<!-- tabs:start -->
146+
147+
#### TypeScript
148+
149+
```ts
150+
function findComplement(num: number): number {
151+
return ~num & (2 ** num.toString(2).length - 1);
152+
}
153+
```
154+
155+
#### JavaScript
156+
157+
```js
158+
/**
159+
* @param {number} num
160+
* @return {number}
161+
*/
162+
function findComplement(num) {
163+
return ~num & (2 ** num.toString(2).length - 1);
164+
}
165+
```
166+
167+
<!-- tabs:end -->
168+
169+
<!-- solution:end -->
170+
141171
<!-- problem:end -->

solution/0400-0499/0476.Number Complement/README_EN.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,4 +132,34 @@ var findComplement = function(num) {
132132

133133
<!-- solution:end -->
134134

135+
<!-- solution:start -->
136+
137+
### Solution 2: Bit Manipulation. Inversion + AND
138+
139+
<!-- tabs:start -->
140+
141+
#### TypeScript
142+
143+
```ts
144+
function findComplement(num: number): number {
145+
return ~num & (2 ** num.toString(2).length - 1);
146+
}
147+
```
148+
149+
#### JavaScript
150+
151+
```js
152+
/**
153+
* @param {number} num
154+
* @return {number}
155+
*/
156+
function findComplement(num) {
157+
return ~num & (2 ** num.toString(2).length - 1);
158+
}
159+
```
160+
161+
<!-- tabs:end -->
162+
163+
<!-- solution:end -->
164+
135165
<!-- problem:end -->
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/**
2+
* @param {number} num
3+
* @return {number}
4+
*/
5+
function findComplement(num) {
6+
return ~num & (2 ** num.toString(2).length - 1);
7+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
function findComplement(num: number): number {
2+
return ~num & (2 ** num.toString(2).length - 1);
3+
}

0 commit comments

Comments
 (0)