/*
* 求包含所有顏色的最小子串
* 演算法:對顏色編號,以顏色為鍵用陣列儲存子串中該色最後出現位置,未出現顏色賦值為-1,colorsize記錄子串中已出現顏色數,當顏色都包含時比較串長,並儲存此時子串資訊
*/public class allcolor
if(colorsize>=m)
int firstcolor=a[laststart];
laststart=colorindex[firstcolor]+1;
colorindex[firstcolor]=-1; //去除子串首色
colorsize--;
}} laststart=minend-minlen+1;
return new int ; }
public static void main(string argvs) throws exception;
int rst = allcolor(a,5);
system.out.printf("%d %d",rst[0],rst[1]);
}}
包含給定字符集的最小子串
給定乙個字元集合must 0,m 1 和乙個字串str 0,n 1 假定n m 找出str 中包含must 中所有字元的最短子串。例如 給乙個字串s1,和乙個小串s2,求演算法能在s1中找到包含s2裡所有字元的最小子串。比如 s1 adobecodebanc s2 abc 最小子串是 banc 要求...
找符合條件的最小子串
例項 s adobecodebanc t abc s最小符合條件t的最小子串為 banc algorithm 這裡首先要把t串字元放在雜湊表中,碰到t中字元則減1,這裡要注意hash中的個數可以為負數,因為比如abbbbbbca 找到abc很明顯是最後乙個子串,遍歷到後面的b時,它可能有用。那麼怎麼...
演算法 關於最小子串和的擴充套件
子串是連續的,子串行是不連續的。最大子串和用遞迴 f i max f i 1 a i f i 最大子串乘積 維護最大和最小值。最小的子串和的絕對值 例如 1 6 5 1 3 2 3,是0。這個問題怎麼求呢?首先維護乙個sum陣列,sum i a 0 a 1 a i 然後就是求某兩個 sum j su...