diff --git a/.idea/awesome-algorithm.iml b/.idea/awesome-algorithm.iml
new file mode 100644
index 0000000000000000000000000000000000000000..d6ebd4805981b8400db3e3291c74a743fef9a824
--- /dev/null
+++ b/.idea/awesome-algorithm.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..15a15b218a29e09c9190992732698d646e4d659a
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6560a98983ec708cf9d8b5c5c3776d7bd39c475b
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..893f829b1b60f95dd6804e7e21d413f5abaae222
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fa93a2f2c93f2d880e4c2888491f5bba8ee28632
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..35eb1ddfbbc029bcab630581847471d7f238ec53
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000000000000000000000000000000000000..282d2a2ccba3286ff7dae07bc6afc371c5f5a41b
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,299 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1556856184639
+
+
+ 1556856184639
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.8
+
+
+
+
+
+
+
+
+
+
+
+ 1.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/Leetcode_Solutions/Java/0004._Median_of_Two_Sorted_Arrays.md b/docs/Leetcode_Solutions/Java/0004._Median_of_Two_Sorted_Arrays.md
new file mode 100644
index 0000000000000000000000000000000000000000..f540dafe322bdd620ded84a76a143b48c3a434e2
--- /dev/null
+++ b/docs/Leetcode_Solutions/Java/0004._Median_of_Two_Sorted_Arrays.md
@@ -0,0 +1,78 @@
+# 4. Longest Palindromic Substring
+
+**难度: Medium**
+
+## 刷题内容
+
+> 原题连接
+
+* https://leetcode-cn.com/problems/longest-palindromic-substring/description
+
+> 内容描述
+
+```
+Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.
+
+
+Example 1:
+
+Input: "babad"
+Output: "bab"
+Note: "aba" is also a valid answer.
+
+
+Example 2:
+
+Input: "cbbd"
+Output: "bb"
+
+```
+
+## 解题方案
+
+> 思路 1
+******- 时间复杂度: O(n^2)******- 空间复杂度: O(n^2)******
+
+使用动态规划的思路,用一个二维数组cache[i][j]记录i到j是否为回文串, beats 54.36%
+
+```java
+class Solution {
+ // 采用动态规划
+ // 如果 i == j ,则只有一个字母 肯定是回文串
+ // 如果 char[i] == char[j] && j == i + 1 , 两个字母相等 肯定是回文串
+ // 如果 char[i] == char[j] && j > i + 1 && cache[i+1][j-1]为true,则肯定是回文串
+ public String longestPalindrome(String s) {
+ if(s == null || s.length() <2){
+ return s;
+ }
+ boolean[][] cache = new boolean[s.length()][s.length()]; // 记录 i ~ j 是否是回文串
+ char[] chars = s.toCharArray();
+ int len = s.length();
+ int start = 0;
+ int end = 0;
+ // 采用至底向上的动态规划,也可以采用递归方式
+ for(int i = len - 1; i >= 0; i --){
+ for(int j = i; j < len; j ++){
+ if(i == j){
+ cache[i][j] = true;
+ }else if(j == i + 1 && chars[i] == chars[j]){
+ cache[i][j] = true;
+ if(end - start + 1 < 2){
+ end = j;
+ start = i;
+ }
+ }else if(chars[i] == chars[j] && cache[i + 1][j-1]){
+ cache[i][j] = true;
+ if(end - start < j-i){
+ start = i;
+ end = j;
+ }
+ }else{
+ cache[i][j] = false;
+ }
+ }
+ }
+ return s.substring(start,end+1);
+ }
+}
+```
diff --git a/docs/Leetcode_Solutions/Java/0005._Longest_Palindromic_Substring b/docs/Leetcode_Solutions/Java/0005._Longest_Palindromic_Substring
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391