問題:在 AlgoExpert 上驗證子序列。給定兩個非空整數陣列,撰寫一個函式來確定第二個陣列是否是第一個陣列的子序列。
我的代碼沒有通過所有測驗用例,我做錯了什么?
public static boolean isValidSubsequence(List<Integer> array, List<Integer> sequence) {
int arrayIndex = 0;
int sequenceIndex = 0;
while(arrayIndex < array.size() && sequenceIndex < sequence.size()){
if(array.get(arrayIndex).equals(sequence.get(sequenceIndex))){
sequenceIndex ;
} else {
arrayIndex ;
}
}
if(sequenceIndex == (sequence.size())){
return true;
}
return false;
}
uj5u.com熱心網友回復:
如果你在兩個陣列中都匹配了一個字符,你應該移動兩個指標而不是一個。
if(array.get(arrayIndex).equals(sequence.get(sequenceIndex))){
sequenceIndex ;
}
arrayIndex ;
uj5u.com熱心網友回復:
感謝大家的幫助!更新的解決方案:
public static boolean isValidSubsequence(List<Integer> array, List<Integer> sequence) {
int arrayIndex = 0;
int sequenceIndex = 0;
while(arrayIndex < array.size() && sequenceIndex < sequence.size()){
if(array.get(arrayIndex).equals(sequence.get(sequenceIndex))){
sequenceIndex ;
arrayIndex ;
} else {
arrayIndex ;
}
if(sequenceIndex == (sequence.size())){
return true;
}
}
return false;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/475403.html
上一篇:總和為k的子陣列的最小大小
下一篇:返回列表