Cara itu terkenal dengan nama Dynamic Programming.

Kalo tertarik bikin code2 menarik, itu ladangnya ada di Programming Contest.

Ini ada problem yang lebih menantang:

Diberikan array of integer A (0-based index).
Saya ingin mencari bilangan integer terkecil di array A dengan index
antara [i, j] (inclusive).
Jawabannya harus dalam O ( log N )

Jelas kalo looping dari i sampai j itu gak boleh karena itu O ( N ).
Ada yang bisa?

Kalau tertarik soal2 seperti itu, anda harusnya masuk Programming Contest.

FYI, Google suka orang2 yang tahu banyak algorithms ;)
Makanya Google ngadain "Google Code Jam" tiap tahun.

Milis yang membahas Programming Contest di indo itu:

http://groups.yahoo.com/group/indo-algo

Tapi sepi nih... disini malah seru :D, bener2 aneh...

Felix Halim


On Fri, Jun 6, 2008 at 4:57 PM, Jecki Sumargo <[EMAIL PROTECTED]> wrote:
> On Fri, Jun 6, 2008 at 3:16 PM, naray citra <[EMAIL PROTECTED]> wrote:
>> Gw dapet cuplikan kode menarik neh, untuk share aja, sapa tau ada yang butuh
>> :D
>> sumber : http://linkmingle.com/details/865
>>
>> There is an array A[N+1] of N integers. You have to compose an array
>> Output[N+1] such that Output[i] will be equal to the productof all the
>> elements of A[] except A[i].
>> Example:
>> INPUT:[4, 3, 2, 1, 2]
>> OUTPUT:[12, 16, 24, 48, 24]
>>
>> Solve it without division operator and in O(n) with out using division
>>
>> import java.util.Arrays;
>>
>> public class PArray {
>>
>>     public int[] PSub(int[] inp){
>>      int[] out = new int[inp.length];
>>      out[0]=1;out[1]=inp[0];
>>      for (int i = 2; i <inp.length ; i++)
>>          out[i] = inp[i-1]*out[i-1];
>>      int P = 1;
>>      for(int i=inp.length-2;i>=0;i--){
>>          P*=inp[i+1];
>>          out[i]=out[i]*P;
>>      }
>>       return out;
>>     }
>>     public static void main(String[] args) {
>>         PArray pArray = new PArray();
>>         int in[] = new int[]{4,3,2,1,2};
>>         System.out.println("INPUT:"+
>>             Arrays.toString(in));
>>         System.out.println("OUTPUT:"+
>>             Arrays.toString(pArray.PSub(in)));
>>     }
>> }
>>
>
> Wah ini hasilnya O(n) ato ga ya? Dilihat2 sepertinya ini O(n^2)
> soalnya ada inner loop yg jumlahnya mendekati n. CMIIW.
>
> Seru juga. Masih blom ketemu caranya nih :)
>
> ------------------------------------
>
> Kalau mau keluar dari mailing list ini, caranya kirim sebuah email ke [EMAIL 
> PROTECTED]
>
> Jangan lupa, website JUG Indonesia adalah http://www.jug.or.id
>
> Yahoo! Groups Links
>
>
>
>

Kirim email ke