ゼロから始まるleetcodeブラシ問題——第3題
1769 ワード
------------------------------------------------------------------2019.04.01
テストに問題はなく、スタックオーバーフローが発生した3番目の問題を提出します.
自分のIDEでテストして問題がなくて、どうして分かりませんか?
---------------------------------------------------------2019.04.02
昨夜問題点を発見した.
なぜならforループにおける判断条件s[i]!='0 '
この条件をiに変更する
提出に成功しました
プログラムコードに問題がある
修正版は以下の通り
実行時間:120 msメモリ消費量:7 MB
前にコミットに失敗しました.時間がかかりすぎたため、簡単に修正しても通過できますが、時間とメモリはまだできません.
コードはさらに最適化する必要があります.
テストに問題はなく、スタックオーバーフローが発生した3番目の問題を提出します.
自分のIDEでテストして問題がなくて、どうして分かりませんか?
int lengthOfLongestSubstring(char* s) {
char *source;
int s_size,long_size;
int i,j;
source=s;
s_size=1;
long_size=s_size;//
for(i=1;s[i]!='\0';i++){
//
for(j=0;j<=s_size-1;j++){
if(source[j]==s[i]){// ,
// longest
if(s_size>long_size){
long_size=s_size;
}
source=s+i;//
s_size=1;
j=s_size+1;
}
}
if(j>s_size) continue;
if(j==s_size){//
s_size++;
}
}
return long_size;
}
---------------------------------------------------------2019.04.02
昨夜問題点を発見した.
なぜならforループにおける判断条件s[i]!='0 '
この条件をiに変更する
提出に成功しました
プログラムコードに問題がある
修正版は以下の通り
int lengthOfLongestSubstring(char* s) {
int size;//
int front,rear;//
int i,j;//
int temp=0;//
rear=front=0;
size=front-rear+1;//
if(strlen(s)==0) return 0;
for(i=1;isize){
size=front-rear+1;
}
i=front;
rear=j+1;
temp=1;
break;
}
}
if(temp)
continue;
else
front++;
if(front-rear+1>size){
size=front-rear+1;
}
}
return size;
}
実行時間:120 msメモリ消費量:7 MB
前にコミットに失敗しました.時間がかかりすぎたため、簡単に修正しても通過できますが、時間とメモリはまだできません.
コードはさらに最適化する必要があります.