Skip to content

Instantly share code, notes, and snippets.

@cixuuz
cixuuz / 564_0906.java
Created September 6, 2017 17:30
[564. Find the Closest Palindrome] #leetcode
public class Solution {
public String mirroring(String s) {
String x = s.substring(0, (s.length()) / 2);
return x + (s.length() % 2 == 1 ? s.charAt(s.length() / 2) : "") + new StringBuilder(x).reverse().toString();
}
public String nearestPalindromic(String n) {
if (n.equals("1"))
return "0";
String a = mirroring(n);
@cixuuz
cixuuz / 517_0906.java
Created September 6, 2017 15:42
[517. Super Washing Machines] #leetcode
public class Solution {
public int findMinMoves(int[] machines) {
int total = 0;
for(int i: machines)
total += i;
if(total%machines.length != 0)
return -1;
int avg = total/machines.length, cnt = 0, max = 0;
for(int load: machines){
@cixuuz
cixuuz / 529_0906.java
Created September 6, 2017 14:53
[529. Minesweeper] #leetcode
class Solution {
// O(9^n) O(1)
public char[][] updateBoard(char[][] board, int[] click) {
int m = board.length;
int n = board[0].length;
if (click.length < 2) return board;
int i = click[0];
int j = click[1];
@cixuuz
cixuuz / 647_0906.java
Created September 6, 2017 13:18
[647. Palindromic Substrings] #leetcode
class Solution {
// O(n^2) O(n^2)
public int countSubstrings(String s) {
int n = s.length();
int[][] dp = new int[n][n];
int res = 0;
for (int i = n - 1; i >= 0; i--) {
dp[i][i] = 1;
@cixuuz
cixuuz / 516_0905.java
Last active September 5, 2017 22:16
[516. Longest Palindromic Subsequence] #leetcode
class Solution {
// O(2^n) O(n)
public int longestPalindromeSubseq(String s) {
return helper(0, s.length()-1, s);
}
private int helper(int left, int right, String s) {
if (left == right) return 1;
if (left > right) return 0;
return s.charAt(left) == s.charAt(right) ? 2 + helper(left+1, right-1, s) :
@cixuuz
cixuuz / 508_0904.java
Last active September 5, 2017 13:17
[508. Most Frequent Subtree Sum] #leetcode
class Solution {
// O(n) O(n)
public int[] findFrequentTreeSum(TreeNode root) {
HashMap<Integer, Integer> sums = new HashMap<Integer, Integer>();
dfs(root, sums);
List<Integer> res = new ArrayList<Integer>();
int max = 0;
@cixuuz
cixuuz / 532_0904.java
Created September 4, 2017 20:56
[532. K-diff Pairs in an Array] #leetcode
class Solution {
// O(n) O(n)
public int findPairs(int[] nums, int k) {
if (nums.length < 2 || k < 0) return 0;
HashSet visited = new HashSet();
HashSet pairs = new HashSet();
for (int n : nums) {
if (visited.contains(n+k)) {
@cixuuz
cixuuz / 333_0903.java
Last active September 3, 2017 19:29
[333. Largest BST Subtree] #leetcode
public class Solution {
class Result { // (size, rangeLower, rangeUpper) -- size of current tree, range of current tree [rangeLower, rangeUpper]
int size;
int lower;
int upper;
Result(int size, int lower, int upper) {
this.size = size;
this.lower = lower;
@cixuuz
cixuuz / 298_0903.java
Created September 3, 2017 19:08
[298. Binary Tree Longest Consecutive Sequence] #leetcode
class Solution {
// O(n) o(h)
private int max = 0;
public int longestConsecutive(TreeNode root) {
if (root == null) return 0;
dfs(root, 0, root.val);
return max;
}
@cixuuz
cixuuz / 285_0903.java
Last active September 3, 2017 18:41
[285. Inorder Successor in BST] #leetcode
// O(n) O(1)
class Solution {
public TreeNode inorderSuccessor(TreeNode root, TreeNode p) {
if (root == null) return null;
TreeNode succ = null;
Deque<TreeNode> stack = new LinkedList<TreeNode>();
while (!stack.isEmpty() || root != null) {
if (root != null) {