diff --git a/reverse-bits/river20s.java b/reverse-bits/river20s.java new file mode 100644 index 000000000..76a976fe9 --- /dev/null +++ b/reverse-bits/river20s.java @@ -0,0 +1,22 @@ +public class Solution { + /* T.C = O(1) + * S.C = O(1) + */ + public int reverseBits(int n) { + // Set the output to 0 + int output = 0; + // Repeat 32 times + for (int i = 0; i < 32; i++) { + // Shift the output value one space to the left to make room for the new bit + output <<= 1; + // '&' operation to get the rightmost bit and add it to the output + output = output | (n & 1); + // Discard the rightmost bit of the 'n' + n = n >> 1; + } + + return output; + + } +} + diff --git a/two-sum/river20s.java b/two-sum/river20s.java new file mode 100644 index 000000000..621660e25 --- /dev/null +++ b/two-sum/river20s.java @@ -0,0 +1,24 @@ +/* + * T.C: O(n) -> 배열 nums를 한 번 순회 + * S.C: O(n) → 최대 n개의 요소가 저장됨 + */ +import java.util.HashMap; + +class Solution { + public int[] twoSum(int[] nums, int target) { + + HashMap map = new HashMap<>(); + for (int i = 0; i < nums.length; i++) { + int k = target - nums[i]; + + if (map.containsKey(k)) { + return new int[] { map.get(k), i }; + } + + map.put(nums[i], i); + } + throw new IllegalArgumentException("exception handling for java compilation"); + + } +} +