From c8c3d67c5645afe33603387891797b593a0592d6 Mon Sep 17 00:00:00 2001 From: NowDont Date: Tue, 18 Jan 2022 23:03:56 -0800 Subject: [PATCH 1/3] 2021/1/18 --- .../LianjiangHe/Bit & Number & Math/LC12.java | 17 ++++++++ .../LianjiangHe/Bit & Number & Math/LC13.java | 40 +++++++++++++++++++ .../Bit & Number & Math/LC136.java | 14 +++++++ .../Bit & Number & Math/LC166.java | 0 .../Bit & Number & Math/LC172.java | 0 .../Bit & Number & Math/LC190.java | 0 .../Bit & Number & Math/LC191.java | 0 .../Bit & Number & Math/LC217.java | 0 .../Bit & Number & Math/LC219.java | 0 .../Bit & Number & Math/LC220.java | 0 .../Bit & Number & Math/LC231.java | 0 .../LianjiangHe/Bit & Number & Math/LC69.java | 9 +++++ 12 files changed, 80 insertions(+) create mode 100644 src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC12.java create mode 100644 src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC13.java create mode 100644 src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC136.java create mode 100644 src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC166.java create mode 100644 src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC172.java create mode 100644 src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC190.java create mode 100644 src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC191.java create mode 100644 src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC217.java create mode 100644 src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC219.java create mode 100644 src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC220.java create mode 100644 src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC231.java create mode 100644 src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC69.java diff --git a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC12.java b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC12.java new file mode 100644 index 000000000..38f423055 --- /dev/null +++ b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC12.java @@ -0,0 +1,17 @@ +class Solution { + private static final int[] values = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; + private static final String[] symbols = {"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"}; + + public String intToRoman(int num) { + StringBuilder sb = new StringBuilder(); + // Loop through each symbol, stopping if num becomes 0. + for (int i = 0; i < values.length && num > 0; i++) { + // Repeat while the current symbol still fits into num. + while (values[i] <= num) { + num -= values[i]; + sb.append(symbols[i]); + } + } + return sb.toString(); + } +} \ No newline at end of file diff --git a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC13.java b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC13.java new file mode 100644 index 000000000..45e4c11ca --- /dev/null +++ b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC13.java @@ -0,0 +1,40 @@ +class Solution { + + static Map values = new HashMap<>(); + + static { + values.put("M", 1000); + values.put("D", 500); + values.put("C", 100); + values.put("L", 50); + values.put("X", 10); + values.put("V", 5); + values.put("I", 1); + } + + public int romanToInt(String s) { + + int sum = 0; + int i = 0; + while (i < s.length()) { + String currentSymbol = s.substring(i, i + 1); + int currentValue = values.get(currentSymbol); + int nextValue = 0; + if (i + 1 < s.length()) { + String nextSymbol = s.substring(i + 1, i + 2); + nextValue = values.get(nextSymbol); + } + + if (currentValue < nextValue) { + sum += (nextValue - currentValue); + i += 2; + } + else { + sum += currentValue; + i += 1; + } + + } + return sum; + } +} \ No newline at end of file diff --git a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC136.java b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC136.java new file mode 100644 index 000000000..1d76f476a --- /dev/null +++ b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC136.java @@ -0,0 +1,14 @@ +class Solution { + public int singleNumber(int[] nums) { + HashMap hash_table = new HashMap<>(); + for (int i : nums) { + hash_table.put(i, hash_table.getOrDefault(i, 0) + 1); + } + for (int i : nums) { + if (hash_table.get(i) == 1) { + return i; + } + } + return 0; + } +} \ No newline at end of file diff --git a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC166.java b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC166.java new file mode 100644 index 000000000..e69de29bb diff --git a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC172.java b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC172.java new file mode 100644 index 000000000..e69de29bb diff --git a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC190.java b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC190.java new file mode 100644 index 000000000..e69de29bb diff --git a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC191.java b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC191.java new file mode 100644 index 000000000..e69de29bb diff --git a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC217.java b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC217.java new file mode 100644 index 000000000..e69de29bb diff --git a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC219.java b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC219.java new file mode 100644 index 000000000..e69de29bb diff --git a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC220.java b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC220.java new file mode 100644 index 000000000..e69de29bb diff --git a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC231.java b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC231.java new file mode 100644 index 000000000..e69de29bb diff --git a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC69.java b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC69.java new file mode 100644 index 000000000..08a7b6716 --- /dev/null +++ b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC69.java @@ -0,0 +1,9 @@ +class Solution { + public int mySqrt(int x) { + if (x < 2) return x; + + int left = mySqrt(x >> 2) << 1; + int right = left + 1; + return (long)right * right > x ? left : right; + } +} \ No newline at end of file From 6955544a27e96b564bc55d92bf28d68e44e71153 Mon Sep 17 00:00:00 2001 From: NowDont Date: Wed, 19 Jan 2022 22:18:14 -0800 Subject: [PATCH 2/3] 2021/1/19 --- .../Bit & Number & Math/LC166.java | 12 +++++++++++ .../Bit & Number & Math/LC172.java | 17 ++++++++++++++++ .../Bit & Number & Math/LC190.java | 11 ++++++++++ .../Bit & Number & Math/LC191.java | 11 ++++++++++ .../Bit & Number & Math/LC217.java | 12 +++++++++++ .../Bit & Number & Math/LC219.java | 13 ++++++++++++ .../Bit & Number & Math/LC220.java | 20 +++++++++++++++++++ .../Bit & Number & Math/LC231.java | 17 ++++++++++++++++ 8 files changed, 113 insertions(+) diff --git a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC166.java b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC166.java index e69de29bb..d42cddb1f 100644 --- a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC166.java +++ b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC166.java @@ -0,0 +1,12 @@ +//You must implement a solution with a/linear runtime/complexity and use only +//constant extra space. +//a⊕0=a ; a⊕a=0 ; a⊕b⊕a=(a⊕a)⊕b=0⊕b=b +class Solution { + public int singleNumber(int[] nums) { + int a = 0; + for (int i : nums) { + a ^= i; + } + return a; + } +} diff --git a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC172.java b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC172.java index e69de29bb..328c81b1d 100644 --- a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC172.java +++ b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC172.java @@ -0,0 +1,17 @@ +//option 1 time limit exceeded +import java.math.BigInteger; +class Solution { + public int trailingZeroes(int n) { + int res = 0; + BigInteger Fac = BigInteger.ONE; + for(int i = 2; i <= n; i++){ + Fac = Fac.multiply(BigInteger.valueOf(i)); + } + while(Fac.mod(BigInteger.TEN).equals(BigInteger.ZERO)){ + Fac = Fac.divide(BigInteger.TEN); + res += 1; + } + return res; + } +} +//option 2 diff --git a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC190.java b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC190.java index e69de29bb..ff2838efe 100644 --- a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC190.java +++ b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC190.java @@ -0,0 +1,11 @@ +public class Solution { + public int reverseBits(int n) { + int ans = 0; + for (int i = 0; i < 32; i++) { + ans <<= 1; + ans = ans | (n & 1); + n >>= 1; + } + return ans; + } +} \ No newline at end of file diff --git a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC191.java b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC191.java index e69de29bb..860c22f4c 100644 --- a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC191.java +++ b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC191.java @@ -0,0 +1,11 @@ +public int hammingWeight(int n) { + int bits = 0; + int mask = 1; + for (int i = 0; i < 32; i++) { + if ((n & mask) != 0) { + bits++; + } + mask <<= 1; + } + return bits; + } \ No newline at end of file diff --git a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC217.java b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC217.java index e69de29bb..9a48775a1 100644 --- a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC217.java +++ b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC217.java @@ -0,0 +1,12 @@ +class Solution { + public boolean containsDuplicate(int[] nums) { + Set hashset = new HashSet<>(nums.length); + for (int x : nums){ + if(hashset.contains(x)){ + return true; + } + hashset.add(x); + } + return false; + } +} \ No newline at end of file diff --git a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC219.java b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC219.java index e69de29bb..b8576445d 100644 --- a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC219.java +++ b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC219.java @@ -0,0 +1,13 @@ +class Solution { + public boolean containsNearbyDuplicate(int[] nums, int k) { + Set set = new HashSet<>(); + for (int i = 0; i < nums.length; ++i) { + if (set.contains(nums[i])) return true; + set.add(nums[i]); + if (set.size() > k) { + set.remove(nums[i - k]); + } + } + return false; + } +} \ No newline at end of file diff --git a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC220.java b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC220.java index e69de29bb..7a6792f33 100644 --- a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC220.java +++ b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC220.java @@ -0,0 +1,20 @@ +class Solution { + public boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) { + TreeSet set = new TreeSet<>(); + for (int i = 0; i < nums.length; ++i) { + // Find the successor of current element + Integer s = set.ceiling(nums[i]); + if (s != null && (long) s <= nums[i] + t) return true; + + // Find the predecessor of current element + Integer g = set.floor(nums[i]); + if (g != null && nums[i] <= (long) g + t) return true; + + set.add(nums[i]); + if (set.size() > k) { + set.remove(nums[i - k]); + } + } + return false; + } +} \ No newline at end of file diff --git a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC231.java b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC231.java index e69de29bb..2bb521941 100644 --- a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC231.java +++ b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Bit & Number & Math/LC231.java @@ -0,0 +1,17 @@ +class Solution { + public boolean isPowerOfTwo(int n) { + if(n == 0){ + return false; + } + if(n == 1){ + return true; + } + if(n%2 != 0){ + return false; + } + while(n%2 == 0){ + n /= 2; + } + return n == 1; + } +} \ No newline at end of file From 1a173d4f4c5700230efabe693853889ac6a1416c Mon Sep 17 00:00:00 2001 From: NowDont Date: Sat, 22 Jan 2022 01:06:09 -0800 Subject: [PATCH 3/3] 2021/1/21 --- .../homework/y2021/m10/LianjiangHe/Java Basic& Design/test.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Java Basic& Design/test.java diff --git a/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Java Basic& Design/test.java b/src/main/java/com/techbow/homework/y2021/m10/LianjiangHe/Java Basic& Design/test.java new file mode 100644 index 000000000..e69de29bb