Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package g0201_0300.s0201_bitwise_and_of_numbers_range;

public class Solution {
private static final int[] MASKS =
new int[] {
0,
0x80000000,
0xC0000000,
0xE0000000,
0xF0000000,
0xF8000000,
0xFC000000,
0xFE000000,
0xFF000000,
0xFF800000,
0xFFC00000,
0xFFE00000,
0xFFF00000,
0xFFF80000,
0xFFFC0000,
0xFFFE0000,
0xFFFF0000,
0xFFFF8000,
0xFFFFC000,
0xFFFFE000,
0xFFFFF000,
0xFFFFF800,
0xFFFFFC00,
0xFFFFFE00,
0xFFFFFF00,
0xFFFFFF80,
0xFFFFFFC0,
0xFFFFFFE0,
0xFFFFFFF0,
0xFFFFFFF8,
0xFFFFFFFC,
0xFFFFFFFE
};

public int rangeBitwiseAnd(int left, int right) {
return left == right ? left : right & MASKS[Integer.numberOfLeadingZeros(left ^ right)];
}
}
28 changes: 28 additions & 0 deletions src/main/java/g0201_0300/s0202_happy_number/Solution.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package g0201_0300.s0202_happy_number;

public class Solution {
public boolean isHappy(int n) {
boolean happy = false;
int a = n;
int rem = 0;
int sum = 0;
if (a == 1 || a == 7) {
happy = true;
} else if (a > 1 && a < 10) {
happy = false;
} else {
while (a != 0) {
rem = a % 10;
sum = sum + (rem * rem);
a = a / 10;
}
if (sum != 1) {
happy = isHappy(sum);
} else {
happy = true;
}
}

return happy;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package g0201_0300.s0203_remove_linked_list_elements;

import com_github_leetcode.ListNode;

/*
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
public class Solution {
public ListNode removeElements(ListNode head, int val) {
if (head == null) {
return null;
}
while (head != null && head.val == val) {
head = head.next;
}
ListNode r = head;
ListNode t = head;
while (r != null) {
if (r.val == val) {
t.next = r.next;
} else {
t = r;
}
r = r.next;
}
return head;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package g0201_0300.s0201_bitwise_and_of_numbers_range;

import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.MatcherAssert.assertThat;

import org.junit.Test;

public class SolutionTest {
@Test
public void rangeBitwiseAnd() {
assertThat(new Solution().rangeBitwiseAnd(5, 7), equalTo(4));
}

@Test
public void rangeBitwiseAnd2() {
assertThat(new Solution().rangeBitwiseAnd(0, 0), equalTo(0));
}

@Test
public void rangeBitwiseAnd3() {
assertThat(new Solution().rangeBitwiseAnd(1, 2147483647), equalTo(0));
}
}
13 changes: 13 additions & 0 deletions src/test/java/g0201_0300/s0202_happy_number/SolutionTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package g0201_0300.s0202_happy_number;

import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.MatcherAssert.assertThat;

import org.junit.Test;

public class SolutionTest {
@Test
public void isHappy() {
assertThat(new Solution().isHappy(19), equalTo(true));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package g0201_0300.s0203_remove_linked_list_elements;

import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.MatcherAssert.assertThat;

import com_github_leetcode.ListNode;
import org.junit.Test;

public class SolutionTest {
@Test
public void removeElements() {
ListNode headActual = new ListNode(1);
headActual.next = new ListNode(2);
headActual.next.next = new ListNode(6);
headActual.next.next.next = new ListNode(3);
headActual.next.next.next.next = new ListNode(4);
headActual.next.next.next.next.next = new ListNode(5);
headActual.next.next.next.next.next.next = new ListNode(6);
assertThat(
new Solution().removeElements(headActual, 6).toString(), equalTo("1, 2, 3, 4, 5"));
}
}