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 1a70769

Browse files
authored
Added tasks 201-203.
1 parent 5bb22d2 commit 1a70769

File tree

6 files changed

+164
-0
lines changed

6 files changed

+164
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package g0201_0300.s0201_bitwise_and_of_numbers_range;
2+
3+
public class Solution {
4+
private static final int[] MASKS =
5+
new int[] {
6+
0,
7+
0x80000000,
8+
0xC0000000,
9+
0xE0000000,
10+
0xF0000000,
11+
0xF8000000,
12+
0xFC000000,
13+
0xFE000000,
14+
0xFF000000,
15+
0xFF800000,
16+
0xFFC00000,
17+
0xFFE00000,
18+
0xFFF00000,
19+
0xFFF80000,
20+
0xFFFC0000,
21+
0xFFFE0000,
22+
0xFFFF0000,
23+
0xFFFF8000,
24+
0xFFFFC000,
25+
0xFFFFE000,
26+
0xFFFFF000,
27+
0xFFFFF800,
28+
0xFFFFFC00,
29+
0xFFFFFE00,
30+
0xFFFFFF00,
31+
0xFFFFFF80,
32+
0xFFFFFFC0,
33+
0xFFFFFFE0,
34+
0xFFFFFFF0,
35+
0xFFFFFFF8,
36+
0xFFFFFFFC,
37+
0xFFFFFFFE
38+
};
39+
40+
public int rangeBitwiseAnd(int left, int right) {
41+
return left == right ? left : right & MASKS[Integer.numberOfLeadingZeros(left ^ right)];
42+
}
43+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package g0201_0300.s0202_happy_number;
2+
3+
public class Solution {
4+
public boolean isHappy(int n) {
5+
boolean happy = false;
6+
int a = n;
7+
int rem = 0;
8+
int sum = 0;
9+
if (a == 1 || a == 7) {
10+
happy = true;
11+
} else if (a > 1 && a < 10) {
12+
happy = false;
13+
} else {
14+
while (a != 0) {
15+
rem = a % 10;
16+
sum = sum + (rem * rem);
17+
a = a / 10;
18+
}
19+
if (sum != 1) {
20+
happy = isHappy(sum);
21+
} else {
22+
happy = true;
23+
}
24+
}
25+
26+
return happy;
27+
}
28+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package g0201_0300.s0203_remove_linked_list_elements;
2+
3+
import com_github_leetcode.ListNode;
4+
5+
/*
6+
* Definition for singly-linked list.
7+
* public class ListNode {
8+
* int val;
9+
* ListNode next;
10+
* ListNode() {}
11+
* ListNode(int val) { this.val = val; }
12+
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
13+
* }
14+
*/
15+
public class Solution {
16+
public ListNode removeElements(ListNode head, int val) {
17+
if (head == null) {
18+
return null;
19+
}
20+
while (head != null && head.val == val) {
21+
head = head.next;
22+
}
23+
ListNode r = head;
24+
ListNode t = head;
25+
while (r != null) {
26+
if (r.val == val) {
27+
t.next = r.next;
28+
} else {
29+
t = r;
30+
}
31+
r = r.next;
32+
}
33+
return head;
34+
}
35+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package g0201_0300.s0201_bitwise_and_of_numbers_range;
2+
3+
import static org.hamcrest.CoreMatchers.equalTo;
4+
import static org.hamcrest.MatcherAssert.assertThat;
5+
6+
import org.junit.Test;
7+
8+
public class SolutionTest {
9+
@Test
10+
public void rangeBitwiseAnd() {
11+
assertThat(new Solution().rangeBitwiseAnd(5, 7), equalTo(4));
12+
}
13+
14+
@Test
15+
public void rangeBitwiseAnd2() {
16+
assertThat(new Solution().rangeBitwiseAnd(0, 0), equalTo(0));
17+
}
18+
19+
@Test
20+
public void rangeBitwiseAnd3() {
21+
assertThat(new Solution().rangeBitwiseAnd(1, 2147483647), equalTo(0));
22+
}
23+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package g0201_0300.s0202_happy_number;
2+
3+
import static org.hamcrest.CoreMatchers.equalTo;
4+
import static org.hamcrest.MatcherAssert.assertThat;
5+
6+
import org.junit.Test;
7+
8+
public class SolutionTest {
9+
@Test
10+
public void isHappy() {
11+
assertThat(new Solution().isHappy(19), equalTo(true));
12+
}
13+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package g0201_0300.s0203_remove_linked_list_elements;
2+
3+
import static org.hamcrest.CoreMatchers.equalTo;
4+
import static org.hamcrest.MatcherAssert.assertThat;
5+
6+
import com_github_leetcode.ListNode;
7+
import org.junit.Test;
8+
9+
public class SolutionTest {
10+
@Test
11+
public void removeElements() {
12+
ListNode headActual = new ListNode(1);
13+
headActual.next = new ListNode(2);
14+
headActual.next.next = new ListNode(6);
15+
headActual.next.next.next = new ListNode(3);
16+
headActual.next.next.next.next = new ListNode(4);
17+
headActual.next.next.next.next.next = new ListNode(5);
18+
headActual.next.next.next.next.next.next = new ListNode(6);
19+
assertThat(
20+
new Solution().removeElements(headActual, 6).toString(), equalTo("1, 2, 3, 4, 5"));
21+
}
22+
}

0 commit comments

Comments
(0)

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