這樣的問題先設(shè)定兩個索引表示兩個數(shù)組的開頭和結(jié)尾,然后在O(n)時間復(fù)雜度下遍歷,注意while里的條件設(shè)定,否則會發(fā)生數(shù)組越界錯誤。
//g表示貪心指數(shù),s表示餅干大小
public static int findContentChildren(int[] g, int[] s) {
Arrays.sort(g);
Arrays.sort(s);
int sum = 0, gi = g.length-1, si = s.length-1;
while(si>=0 && gi>=0) {
if(s[si]>=g[gi]) {
sum++;
gi--;
si--;
}
else
gi--;
}
return sum;
}
public static boolean isSubsequence(String s, String t) {
int i = 0, j=0, count = 0;
while(i<s.length()&&j<t.length()) {
if(s.charAt(i)==t.charAt(j)) {
count++;
i++;
j++;
}
else
j++;
}
return count==s.length();
}