由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - leetcode我这2个palindrome的为什么过不了大oj
相关主题
leetcode 一道题 valid palindrome请教,划分回文的最小cut次数,调试不出来
这种backtracking的问题怎么算时间复杂度?比如palindrom patitioning.leetcode Longest Palindromic Substring Part II 有问题?
我这个 3Sum 怎么过不了leetcode的测试阿palindrome partitioning 2
求助各位大牛:LeetCode的Decode Waysleetcode online judge Longest Palindromic Substring memory limit exceeded
这段代码在leetcode上面跑不了?? Memory Limit Exceeded: Longest Palindromic Substring
Palindrome Partitioning II Runtime Error大家幫我看看longest palindrome為什麽有錯,檢查半天也沒看出
大家帮忙看看我的Palindrome II 的解法leetcode 关于Partition List
leetcode里的Palindrome partition问题Leetcode Valid Number
相关话题的讨论汇总
话题: int话题: begin话题: solution话题: string话题: java
进入JobHunting版参与讨论
1 (共1页)
c********p
发帖数: 1969
1
请大牛帮忙看看。
第一个是longest palindrome的,我按leetcode discussion的c++代码改的java的,怎
么就过不了了呢?一行行对过了阿。。。我知道有o(n)的算法,但这个dp的我就奇怪怎
么过不了呢,哪个细节写错了。。。
public class Solution {
public String longestPalindrome(String s) {
// Start typing your Java solution below
// DO NOT write main() function

if(s == null || s.length() <= 1){
return s;
}

int[][] P = new int[s.length()][s.length()];
int max = 1;
int begin = 0;

for(int i = 0; i < s.length(); i++){
P[i][i] = 1;
}

for(int i = 0; i < s.length() - 1; i++){
if(s.charAt(i) == s.charAt(i + 1)){
P[i][i + 1] = 1;
max = 2;
begin = i;
}
}

for(int L = 3; L <= s.length(); L++){
for(int i = 0; i < s.length() - L + 1; i++){
int j = i + L - 1;
if(s.charAt(i) == s.charAt(j) && P[i + 1][j - 1] == 1){
P[i][j] = 1;
max = L;
begin = i;
}
}
}
return s.substring(begin, begin + max);
}
}
第2个是 palindrome partition ii
是因为我用了2维的数组么?也过不了大oj。
public class Solution {
public int minCut(String s) {
// Start typing your Java solution below
// DO NOT write main() function
if(s == null || s.length() == 0){
return 0;
}

int[][] P = new int[s.length()][s.length()];
int[][] C = new int[s.length()][s.length()];
for(int i = 0; i < s.length(); i++){
P[i][i] = 1;
C[i][i] = 0;
}

for(int L = 2; L <= s.length(); L++){
for(int i = 0; i < s.length() - L + 1; i++){
int j = i + L - 1;
if(i == j - 1){
if(s.charAt(i) == s.charAt(j)){
P[i][j] = 1;
}else{
P[i][j] = 0;
}
}else{
if(s.charAt(i) == s.charAt(j) && P[i + 1][j - 1] == 1){
P[i][j] = 1;
}else{
P[i][j] = 0;
}
}

if(P[i][j] == 1){
C[i][j] = 0;
}else{
C[i][j] = Integer.MAX_VALUE;
for(int k = i; k < j; k++){
C[i][j] = Math.min(C[i][j], C[i][k] + C[k + 1][j] +
1);
}
}
}
}
return C[0][s.length() - 1];
}
}
谢谢大家帮忙!
1 (共1页)
进入JobHunting版参与讨论
相关主题
Leetcode Valid Number这段代码在leetcode上面跑不了??
3sum on LeetCode OJPalindrome Partitioning II Runtime Error
关于leetcode上那个买卖股票II的问题大家帮忙看看我的Palindrome II 的解法
leetcode上的populate next node I and IIleetcode里的Palindrome partition问题
leetcode 一道题 valid palindrome请教,划分回文的最小cut次数,调试不出来
这种backtracking的问题怎么算时间复杂度?比如palindrom patitioning.leetcode Longest Palindromic Substring Part II 有问题?
我这个 3Sum 怎么过不了leetcode的测试阿palindrome partitioning 2
求助各位大牛:LeetCode的Decode Waysleetcode online judge Longest Palindromic Substring memory limit exceeded
相关话题的讨论汇总
话题: int话题: begin话题: solution话题: string话题: java