本文主要是介绍Arrays分类算法-Validate Subsequence,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目要求
解法一:
通过双指针,while loop 一个一个比较两数组数字的大小,最后看sequence是否都被包含在array中。
Time: O(n) Space: O(1)
代码:
import java.util.*;class Program {public static boolean isValidSubsequence(List<Integer> array, List<Integer> sequence) {// Write your code here.int firstIdx = 0;int secondIdx = 0;while (firstIdx < array.size() && secondIdx < sequence.size()) {if (array.get(firstIdx) == sequence.get(secondIdx)) {secondIdx++;}firstIdx++;}return secondIdx == sequence.size();}
}
解法二:
通过单指针,for loop一个一个比较两数组数字的大小,最后看sequence是否都被包含在array中。
Time: O(n) Space: O(1)
代码:
import java.util.*;class Program {public static boolean isValidSubsequence(List<Integer> array, List<Integer> sequence) {// Write your code here.int seqIdx = 0;for (var value : array) {if (seqIdx == sequence.size()) {break;}if (sequence.get(seqIdx).equals(value)) {seqIdx++;}}return seqIdx == sequence.size();}
}
这篇关于Arrays分类算法-Validate Subsequence的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!