Skip to content

Commit 1bfd49f

Browse files
committed
1216
1 parent 82c0b37 commit 1bfd49f

3 files changed

Lines changed: 78 additions & 1 deletion

File tree

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,8 @@ Feel free to submit pull requests, add issues and be a contributer.
139139
| Leetcode | [173. Binary Search Tree Iterator](https://leetcode.com/problems/binary-search-tree-iterator/description/) | [Java](./java/BSTIterator.java) | O(1) | O(h) | Medium | |
140140
| Leetcode | [220. Contains Duplicate III](https://leetcode.com/problems/contains-duplicate-iii/description/) | [Java](./java/containsNearbyAlmostDuplicate.java) | O(nlogk) | O(k) | Medium | |
141141
| Leetcode | [285. Inorder Successor in BST](https://leetcode.com/problems/inorder-successor-in-bst/description/) | [Java](./java/inorderSuccessor.java) | O(h) | O(1) | Medium | |
142-
| Leetcode | [298. Binary Tree Longest Consecutive Sequence](https://leetcode.com/problems/binary-tree-longest-consecutive-sequence/description/) | [Java](./java/longestConsecutive.java) | O(n) | O(n) | Medium | |
142+
| Leetcode | [297. Serialize and Deserialize Binary Tree](https://leetcode.com/problems/serialize-and-deserialize-binary-tree/description/) | [Java](./java/longestConsecutive.java) | O(n) | O(n) | Medium | |
143+
| Leetcode | [298. Binary Tree Longest Consecutive Sequence](https://leetcode.com/problems/binary-tree-longest-consecutive-sequence/description/) | [Java](./java/serializeDeserialize.java) | O(n) | O(n) | Hard | |
143144
| Leetcode | [314. Binary Tree Vertical Order Traversal](https://leetcode.com/problems/binary-tree-vertical-order-traversal/description/) | [Java](./java/verticalOrder.java) | O(n) | O(n) | Medium | |
144145
| Leetcode | [404. Sum of Left Leaves](https://leetcode.com/problems/sum-of-left-leaves/description/) | [Java](./java/sumOfLeftLeaves.java) | O(n) | O(n) | Easy | |
145146
| Leetcode | [437. Path Sum III](https://leetcode.com/problems/path-sum-iii/description/) | [Java](./java/pathSumiii.java) | O(n) | O(1) | Easy | |
@@ -167,6 +168,7 @@ Feel free to submit pull requests, add issues and be a contributer.
167168
| Leetcode | [91. Decode Ways](https://leetcode.com/problems/decode-ways/description/) | [Java](./java/numDecodings.java) | _O(n)_ | _O(n)_ | Medium | |
168169
| Leetcode | [152. Maximum Product Subarray](https://leetcode.com/problems/maximum-product-subarray/) | [Java](./java/MaximumProductSubArray.java) | _O(n)_ | _O(1)_ | Medium | |
169170
| Leetcode | [198. House Robber](https://leetcode.com/problems/house-robber/description/) | [Java](./java/rob.java) | _O(n)_ | _O(1)_ | Easy | |
171+
| Leetcode | [221. Maximal Square](https://leetcode.com/problems/maximal-square/description/) | [Java](./java/maximalSquare.java) | _O(mn)_ | _O(mn)_ | Medium | |
170172
| Leetcode | [264. Ugly Number II](https://leetcode.com/problems/ugly-number-ii/description/) | [Java](./java/nthUglyNumber.java) | _O(n)_ | _O(1)_ | Easy | |
171173
| Leetcode | [628. Maximum Product of Three Numbers](https://leetcode.com/problems/maximum-product-of-three-numbers) | [Java](./java/MaximumProduct.java) | _O(n)_ | _O(1)_ | Easy | |
172174
| Leetcode | [646. Maximum Length of Pair Chain](https://leetcode.com/problems/maximum-length-of-pair-chain/description/) | [Java](./java/findLongestChain.java) | _O(n)_ | _O(1)_ | Easy | |

java/maximalSquare.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class Solution {
2+
public int maximalSquare(char[][] matrix) {
3+
int row = matrix.length, col = row>0 ? matrix[0].length : 0, max = 0;
4+
int [][] dp = new int[row+1][col+1];
5+
for(int i=1; i<=row; i++)
6+
{
7+
for(int j=1; j<=col; j++)
8+
{
9+
if(matrix[i-1][j-1]=='1')
10+
{
11+
dp[i][j] = Math.min(Math.min(dp[i-1][j], dp[i][j-1]), dp[i-1][j-1])+1;
12+
max = Math.max(max, dp[i][j]);
13+
}
14+
}
15+
}
16+
return max*max;
17+
}
18+
}

java/serializeDeserialize.java

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
/**
2+
* Definition for a binary tree node.
3+
* public class TreeNode {
4+
* int val;
5+
* TreeNode left;
6+
* TreeNode right;
7+
* TreeNode(int x) { val = x; }
8+
* }
9+
*/
10+
public class Codec {
11+
12+
private String splitter = ",";
13+
private String nn = "X";
14+
15+
// Encodes a tree to a single string.
16+
public String serialize(TreeNode root) {
17+
StringBuilder sb = new StringBuilder();
18+
serializeHelper(root, sb);
19+
return sb.toString();
20+
}
21+
22+
public void serializeHelper(TreeNode node, StringBuilder sb)
23+
{
24+
if(node == null)
25+
sb.append(nn).append(splitter);
26+
else
27+
{
28+
sb.append(node.val).append(splitter);
29+
serializeHelper(node.left, sb);
30+
serializeHelper(node.right, sb);
31+
}
32+
}
33+
34+
// Decodes your encoded data to tree.
35+
public TreeNode deserialize(String data) {
36+
Deque<String> nodes = new LinkedList<>();
37+
nodes.addAll(Arrays.asList(data.split(splitter)));
38+
return buildTree(nodes);
39+
}
40+
41+
public TreeNode buildTree(Deque<String> nodes)
42+
{
43+
String val = nodes.remove();
44+
if(val.equals(nn)) return null;
45+
else
46+
{
47+
TreeNode node = new TreeNode(Integer.valueOf(val));
48+
node.left = buildTree(nodes);
49+
node.right = buildTree(nodes);
50+
return node;
51+
}
52+
}
53+
}
54+
55+
// Your Codec object will be instantiated and called as such:
56+
// Codec codec = new Codec();
57+
// codec.deserialize(codec.serialize(root));

0 commit comments

Comments
 (0)