Rumah >hujung hadapan web >tutorial js >Pelaksanaan JavaScript bagi algoritma twitter lopak example_javascript kemahiran

Pelaksanaan JavaScript bagi algoritma twitter lopak example_javascript kemahiran

WBOY
WBOYasal
2016-05-16 16:28:481395semak imbas

Saya menemui soalan algoritma yang sangat menarik hari ini. Berikut ialah penerangan algoritmanya, yang diperoleh daripada soalan temu bual di Twitter.

Penerangan algoritma lopak Twitter

Tengok gambar dulu

Nombor dalam gambar di atas diterangkan berdasarkan kandungan array Akhirnya, ketinggian dinding akan disimulasikan berdasarkan saiz setiap nombor, dan akhirnya dinding akan dijana, bila ketika hujan, dinding ini boleh dipasang Berapa banyak air, dalam unit 1.

Berikut ialah rupa dinding selepas diisi dengan air

Selepas membaca gambar di atas, saya rasa ia sangat menarik, mari kita menganalisis secara ringkas pelaksanaan algoritmanya

Sebenarnya, prinsip ini agak mudah. ​​Terdapat beberapa perkara penting secara keseluruhan:

1. Bahagian paling kiri dan paling kanan tidak boleh diisi dengan air
2. Ketinggian isi air bergantung pada minimum dua nilai maksimum di sebelah kiri dan kanan

Di bawah kami menggunakan js untuk melaksanakannya dengan mudah:

Salin kod Kod adalah seperti berikut:

/**
* Kira berapa banyak air dinding dengan item tatasusunan kerana ketinggian boleh menampung
* Contoh tatasusunan [2,5,1,2,3,4,7,7,6,9]
**/
fungsi getWaterCounts(arg){
var i = 0,
        j = 0,
Kira = 0;
// Kedua-dua item pertama dan terakhir mesti dikecualikan
untuk(i = 1; i < arg.panjang - 1; i ){
      var left = Math.max.apply(null, arg.slice(0, i 1));
      var right = Math.max.apply(null, arg.slice(i, arg.length));
        var min = kiri >= kanan : kiri;
              // Nilai maksimum yang lebih kecil di sebelah kiri dan kanan akan diguna pakai
//Jika nilai semasa lebih besar daripada atau sama dengan nilai ini, jangan lakukan apa-apa
           if(arg[i] < min){
Kira = min - arg[i];
}
}
console.log(count);
}
getWaterCounts([2,5,1,2,3,4,7,7,6,9]);

Ringkasan

Hei, pelaksanaannya agak mudah, malah, selagi anda sanggup berfikir, anda boleh mencapai banyak perkara yang menyeronokkan dengan js.


Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn