Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 0 additions & 22 deletions src/ main/ java/ MoveZeroes/MoveZeroes.java

This file was deleted.

1 change: 0 additions & 1 deletion src/ main/ java/ MoveZeroes/fate0928

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package GenerateParentheses.ZHANGJIKAI5;

import java.util.ArrayList;
import java.util.List;

/**
* author:ZHANGJIKAI5
* 题目:22. Generate Parentheses
* 解题思路:
*/
public class GenerateParentheses {

public List<String> generateParenthesis(int n) {
List<String> list = new ArrayList<String>();
List<Character> left = new ArrayList<Character>(n);
List<Character> right = new ArrayList<Character>(n);
for (int i=0; i<n; i++) {

for (int j=0; j<n; j++) {

}

}




return list;
}

public static void main(String[] args) {
int n = 3;
GenerateParentheses generateParentheses = new GenerateParentheses();
List<String> list = generateParentheses.generateParenthesis(n);
for (String s: list
) {
System.out.println(s);
}
}

}
2 changes: 1 addition & 1 deletion src/main/java/MoveZeroes/ZHANGJIKAI5/MoveZeroes.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.its.leet.code.leetcode.MoveZeroes;
package MoveZeroes.ZHANGJIKAI5;


/**
Expand Down
52 changes: 52 additions & 0 deletions src/main/java/RemoveElement/ZHANGJIKAI5/RemoveElement.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package RemoveElement.ZHANGJIKAI5;


/**
* author:ZHANGJIKAI5
* 题目:27. 移除元素
* 解题思路:题目容易进入误区,要输出数组长度,我第一想法是要copy一个数组,但是这样又没有办法做到空间复杂度O(1)
* 审题后,发现实例里有说:你不需要考虑数组中超出新长度后面的元素。
* 由此定义一个两个变量,一个i,记录长度;一个temp,作为交换元素的中间变量。
*/
public class RemoveElement {

/**
* 第一次完成:
* 执行用时 : 1 ms, 在Remove Element的Java提交中击败了99.59% 的用户
* 内存消耗 : 35.1 MB, 在Remove Element的Java提交中击败了85.91% 的用户
* 第二次修改后:
* 执行用时 : 1 ms, 在Remove Element的Java提交中击败了99.59% 的用户
* 内存消耗 : 35 MB, 在Remove Element的Java提交中击败了86.60% 的用户
* 第三次修改后:
* 执行用时 : 1 ms, 在Remove Element的Java提交中击败了99.59% 的用户
* 内存消耗 : 34 MB, 在Remove Element的Java提交中击败了100.00% 的用户
* @param nums
* @param val
* @return
*/
public int removeElement(int[] nums, int val) {
int l = 0;
int temp;
for (int i=0; i<nums.length; i++) {
if (nums[i] != val) {
temp = nums[i];
nums[i] = nums[l];
nums[l] = temp;
l++;
}
}
return l;
}

public static void main(String[] args) {
RemoveElement removeElement = new RemoveElement();
int[] nums = {0,1,2,2,3,0,4,2};
int val = 2;
System.out.println("数组长度:" + removeElement.removeElement(nums, val));
for (int i : nums
) {
System.out.println(i);
}
}

}
97 changes: 97 additions & 0 deletions src/main/java/ValidParentheses/ZHANGJIKAI5/ValidParentheses.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
package ValidParentheses.ZHANGJIKAI5;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;

/**
* author:ZHANGJIKAI5
* 题目:20. Valid Parentheses
* 解题思路:
*/
public class ValidParentheses {

/**
* 第一次执行:
* 执行用时 : 6 ms, 在Valid Parentheses的Java提交中击败了76.53% 的用户
* 内存消耗 : 33.7 MB, 在Valid Parentheses的Java提交中击败了93.11% 的用户
* 第二次执行:
* 执行用时 : 5 ms, 在Valid Parentheses的Java提交中击败了84.74% 的用户
* 内存消耗 : 33.7 MB, 在Valid Parentheses的Java提交中击败了92.63% 的用户
* 第三次执行:
* 执行用时 : 4 ms, 在Valid Parentheses的Java提交中击败了92.03% 的用户
* 内存消耗 : 34.1 MB, 在Valid Parentheses的Java提交中击败了87.89% 的用户
* 第四次执行:
* 执行用时 : 4 ms, 在Valid Parentheses的Java提交中击败了92.03% 的用户
* 内存消耗 : 33.6 MB, 在Valid Parentheses的Java提交中击败了93.88% 的用户
*
* 执行用时 : 3 ms, 在Valid Parentheses的Java提交中击败了96.83% 的用户
* 内存消耗 : 33.4 MB, 在Valid Parentheses的Java提交中击败了97.20% 的用户
* @param s
* @return
*/
public boolean isValid(String s) {
char[] chars = s.toCharArray();
LinkedList<Character> list = new LinkedList<Character>();
if (chars.length > 0) {
Map<Character, Character> all = new HashMap(chars.length);
all.put(')', '(');
all.put('}', '{');
all.put(']', '[');
for (char c : chars) {
if ('(' == c || '{' == c || '[' == c) {
list.add(c);
} else {
if (list.size() <= 0) {
return false;
}
// 第三四次执行
if (list.getLast() != all.get(c)) {
return false;
} else {
list.removeLast();
}
// 第一二次执行
/*if (')' == c) {
if ('(' != list.getLast()) {
return false;
} else {
list.removeLast();
}
} else if ('}' == c) {
if ('{' != list.getLast()) {
return false;
} else {
list.removeLast();
}
} else if (']' == c) {
if ('[' != list.getLast()) {
return false;
} else {
list.removeLast();
}
}*/
}
}
}
if (list.size() == 0) {
return true;
}
return false;
}

public static void main(String[] args) {
ValidParentheses validParentheses = new ValidParentheses();
String s1 = "([)]";
String s2 = "()[]{}";
String s3 = "]";
String s4 = "[";
System.out.println("s1:" + validParentheses.isValid(s1));
System.out.println("s2:" + validParentheses.isValid(s2));
System.out.println("s3:" + validParentheses.isValid(s3));
System.out.println("s4:" + validParentheses.isValid(s4));


}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package ValidParenthesisString.ZHANGJIKAI5;

/**
* author:ZHANGJIKAI5
* 题目:678. Valid Parenthesis String
* 解题思路:
*/
public class ValidParenthesisString {

public boolean checkValidString(String s) {
char[] chars = s.toCharArray();





return false;
}

public static void main(String[] args) {
ValidParenthesisString validParenthesisString = new ValidParenthesisString();
String s1 = "(*))";
String s2 = "(*)";
System.out.println("s1:" + validParenthesisString.checkValidString(s1));
System.out.println("s2:" + validParenthesisString.checkValidString(s2));

}

}