簡單貪心算法套路

這樣的問題先設(shè)定兩個索引表示兩個數(shù)組的開頭和結(jié)尾,然后在O(n)時間復(fù)雜度下遍歷,注意while里的條件設(shè)定,否則會發(fā)生數(shù)組越界錯誤。

  1. 分糖果問題
//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;
    }
  1. leetcode判斷子序列
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();
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容