Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main'
Browse files Browse the repository at this point in the history
  • Loading branch information
BGMer7 committed Jul 14, 2022
2 parents fa06de2 + edbbbbb commit 883f5b8
Show file tree
Hide file tree
Showing 3 changed files with 115 additions and 0 deletions.
55 changes: 55 additions & 0 deletions src/com/gatsby/_208ImplementTrie.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package com.gatsby;

/**
* @author -- gatsby
* @date -- 2022/7/12
* @description --
*/


public class _208ImplementTrie {
class TrieNode {
boolean isEnd = false;
// 直接创建一个26字母的数组,这样已经可以考虑到所有的下一位字母的情况
TrieNode[] children = new TrieNode[26];
}

private TrieNode root;

public _208ImplementTrie() {
root = new TrieNode();
}

public void insert(String word) {
TrieNode p = root;
for (int i = 0; i < word.length(); ++i) {
int letter = word.charAt(i) - 'a';
if (p.children[letter] == null) {
p.children[letter] = new TrieNode();
}
p = p.children[letter];
}
// 此时在最后一个字母,将isEnd置为true
p.isEnd = true;
}

public boolean search(String word) {
TrieNode p = root;
for (int i = 0; i < word.length(); ++i) {
int letter = word.charAt(i) - 'a';
if (p.children[letter] == null) return false;
else p = p.children[letter];
}
return p.isEnd;
}

public boolean startsWith(String prefix) {
TrieNode p = root;
for (int i = 0; i < prefix.length(); ++i) {
int letter = prefix.charAt(i) - 'a';
if (p.children[letter] == null) return false;
else p = p.children[letter];
}
return true;
}
}
20 changes: 20 additions & 0 deletions src/com/gatsby/_908SmallestRangeI.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.gatsby;

/**
* @author -- gatsby
* @date -- 2022/4/30
* @description -- leetcode 908 最小差值
*/


public class _908SmallestRangeI {
public int smallestRangeI(int[] nums, int k) {
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
for (int num : nums) {
if (num > max) max = num;
if (num < min) min = num;
}
return max - min > 2 * k ? max - min - 2 * k : 0;
}
}
40 changes: 40 additions & 0 deletions src/com/gatsby/offerII/_4OnlyOnce.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package com.gatsby.offerII;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

/**
* @author -- gatsby
* @date -- 2022/7/13
* @description -- 剑指 Offer II 004. 只出现一次的数字
*/


public class _4OnlyOnce {
public int singleNumber(int[] nums) {
Map<Integer, Integer> count = new HashMap<>();
for (int num : nums) {
count.put(num, count.getOrDefault(num, 0) + 1);
}

for (int num : count.keySet()) {
if (count.get(num) == 1) return num;
}

return -1;
}

public int single(int start, int[] nums) {
return nums[start] ^ nums[start + 1] ^ nums[start + 2];
}

public int singleNumberSort(int[] nums) {
Arrays.sort(nums);

for (int i = 0; i + 3 < nums.length; i += 3) {
if (nums[i] != nums[i+2]) return single(i, nums);
}
return -1;
}
}

0 comments on commit 883f5b8

Please sign in to comment.