120 likes | 238 Views
Find the sum of contiguous subarray within a one-dimensional array of numbers which has the largest sum. Largest Sum Contiguous Array. Solution. State: Sum(i) = Sum(i-1) + a[i] if Sum(i-1) + a[i]>0 = 0 otherwise Solution: Max ( Sum(i) ) i Є [0,n-1].
E N D
Find the sum of contiguous subarray within a one-dimensional array of numbers which has the largest sum. Largest Sum Contiguous Array
Solution • State: Sum(i) = Sum(i-1) + a[i] if Sum(i-1) + a[i]>0 = 0 otherwise • Solution: Max ( Sum(i) ) i Є [0,n-1]
Cut Rod • Given a rod of length n inches and an array of prices that contains prices of all pieces of size smaller than n • Determine the maximum value obtainable by cutting up the rod and selling the pieces.
Solution • State: cutRod(n)=max(price[i] + cutRod(n-i-1)) for all i in {0,..,n-1}. • Solution cutRod(L)
0-1 Knapsack • Given weights and values of n items, put these items in a knapsack of capacity W to get the maximum total value in the knapsack. • You cannot break an item, either pick the complete item, or don’t pick it (0-1 property).
Solution • State: C(i,j) = max( C(i-1,j-w[i]) + v[i] , C(i-1,j) ) (Note : Check for j-w[i]>=0) • Solution: C(n,W)
Longest Increasing Subsequence • Find the length of the longest subsequence of a given sequence such that all elements of the subsequence are sorted in increasing order.
Solution • State: S(i) = max(S(k) + 1) where k=0,..,i-1 and a[k]<a[i] • Solution: Max (S(i))
Edit Distance • Given two strings of size m, n and set of operations replace (R), insert (I) and delete (D) all at equal(or different) cost. • Find minimum number of edits (operations) required to convert one string into another.
Solution • State E(i, j) = min( E(i-1, j) + D, E(i, j-1) + I, E(i-1, j-1) + R if S[i]!=S[j] E(i-1,j-1) + 0 if S[i]=S[j] ) • Solution E(n,m)
Topcoder Problem • Given a string composed of lowercase alphabets 'a'-'z' and '?'. • replace every '?' in S with a random lowercase letter ('a' – 'z') – uniform probability • Find expected number of palindromic substrings in S
Example • Test Case 1 • aaa • 6 • Test Case 2 • z?? • 3.11 • There are 26^2 = 676 equally likely possibilities for the letters used to replace the question marks. Here are all possible outcomes: • The string "zzz" has 6 palindromic substrings. • Each of the 25 strings "zaz", "zbz", ..., "zyz" has 4 palindromic substrings. • Each of the 25 strings "zza", "zzb", ..., "zzy" has 4 palindromic substrings. • Each of the 25 strings "zaa", "zbb", ..., "zyy" has 4 palindromic substrings. • Each of the remaining 600 possible strings only has the 3 single-letter palindromic substrings. • The expected number of palindromic substrings can be computed simply as the average over all 676 possible cases. Hence, the correct return value is (6 + 75*4 + 600*3) / 676.