Jadual Kandungan
Kaedah brute force
Contoh
Output
Perihalan kod di atas
Kaedah yang cekap
Penjelasan kod di atas
Kesimpulan
Rumah pembangunan bahagian belakang C++ Tulis kod menggunakan C++ untuk mencari bilangan subarray dengan jumlah ganjil

Tulis kod menggunakan C++ untuk mencari bilangan subarray dengan jumlah ganjil

Sep 21, 2023 am 08:45 AM
kuantiti bawahan Jumlah ganjil

Tulis kod menggunakan C++ untuk mencari bilangan subarray dengan jumlah ganjil

Subarray ialah bahagian bersebelahan daripada tatasusunan. Sebagai contoh, kami menganggap tatasusunan [5, 6, 7, 8], maka terdapat sepuluh sub-tatasusunan bukan kosong, seperti (5), (6), (7), (8), (5, 6). ), (6, 7), (7,8), (5,6,7), (6,7,8) dan (5,6,7,8).

Dalam panduan ini, kami akan menerangkan semua maklumat yang mungkin untuk mencari bilangan subarray dengan jumlah ganjil dalam C++. Untuk mencari bilangan sub-tatasusunan dengan jumlah ganjil kita boleh menggunakan kaedah yang berbeza jadi berikut ialah contoh mudah -

Input : array = {9,8,7,6,5}
Output : 9

Explanation :
Sum of subarray -
{9} = 9
{7} = 7
{5} = 5
{9,8} = 17
{8,7} = 15
{7,6} = 13
{6,5} = 11
{8,7,6} = 21
{9,8,7,6,5} = 35
Salin selepas log masuk

Kaedah brute force

Dengan kaedah ini kita hanya boleh menyemak bahawa jumlah elemen dalam semua sub-tatasusunan ialah Genap atau ganjil, jika genap kita akan menolak sub-tatasusunan dan mengira sub-tatasusunan yang jumlahnya ganjil, ini bukan cara yang cekap kerana kerumitan kod ini ialah O(n2).

Contoh

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n=5, temp = 0;
    int a[n-1] = { 9,8,7,6,5 } ; // declaring our array.
    int cnt = 0; // counter variable.
    for(int i = 0; i < n; i++){
        temp = 0; // refreshing our temp sum.
        for(int j = i; j < n; j++){ // this loop will make our subarrays starting from i till n-1.
            temp = temp + a[j];
            if( temp % 2 == 1 )
                cnt++;
        }
    }
    cout << "Number of subarrays with odd sum : " << cnt << "\n";
    return 0;
}
Salin selepas log masuk

Output

Number of subarrays with odd sum : 9
Salin selepas log masuk
Salin selepas log masuk

Perihalan kod di atas

Gelung bersarang digunakan dalam kod ini, di mana gelung luar digunakan untuk menambah nilai I, dan I menunjuk kepada setiap nilai dalam tatasusunan dari awal ; gelung dalam digunakan untuk mencari Subarray dengan jumlah ganjil bermula pada kedudukan " i ".

Kaedah yang cekap

Dalam kaedah ini kita memproses setiap elemen bermula dari kedudukan ke-0 dalam tatasusunan. Jika elemen semasa adalah ganjil, tambahkan pembilang ganjil dan tambahkan pembilang genap untuk setiap nombor genap. Jika kita menjumpai nombor ganjil, nilai Genap dan ganjil ditukar, kerana menambah nombor ganjil pada subarray mengubah paritinya, dan akhirnya kiraan ditambahkan pada hasilnya. Kerumitan kod ini ialah O(n) kerana kami sedang memproses setiap elemen.

Contoh

 
#include <bits/stdc++.h>
using namespace std;
int main(){
    int odd = 0, even = 0,  result = 0,n=5,i,temp;
    int arr[ n-1 ] = { 9,8,7,6,5}; // initialising the array
     // for loop for processing every element of array
    for ( i = 0 ; i < n ; i ++ )  {
        if ( arr[ i ] % 2 == 0 ) {
            even++;
        } else {
          // swapping even odd values
            temp = even;
            even = odd;
            odd = temp + 1;
        }
        result += odd;
    }
    cout << "Number of subarrays with odd sum : " << result;
}
Salin selepas log masuk

Output

Number of subarrays with odd sum : 9
Salin selepas log masuk
Salin selepas log masuk

Penjelasan kod di atas

Dalam kod ini, kami menyemak nombor genap/ganjil setiap elemen dan menambah pembilang genap untuk genap dan pembilang ganjil untuk ganjil. Selain itu, jika nombor ganjil ditemui, kami akan menukar nilai kaunter pariti jika tidak, ia akan menukar pariti subbarray. Kemudian tambahkan nilai pembilang ganjil kepada pembolehubah hasil selepas setiap lelaran.

Kesimpulan

Dalam artikel ini kami menerangkan cara mencari kaedah paksaan nombor daripada Brute untuk subarray dengan jumlah ganjil, jana setiap subarray dengan jumlah ganjil dan tambahkan kiraan. Kerumitan masa kod ini ialah O(n2). Cara yang cekap ialah dengan melelakan setiap elemen tatasusunan dan menambah pembolehubah pembilang ganjil/genap dengan setiap nombor ganjil/genap ditemui, menukar pembilang jika nombor ganjil ditemui kerumitan masa kod ini ialah O(n). Saya harap anda mendapati artikel ini membantu dalam memahami masalah dan penyelesaiannya.

Atas ialah kandungan terperinci Tulis kod menggunakan C++ untuk mencari bilangan subarray dengan jumlah ganjil. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Tingkatkan pengetahuan anda! Pembelajaran mesin dengan peraturan logik Tingkatkan pengetahuan anda! Pembelajaran mesin dengan peraturan logik Apr 01, 2023 pm 10:07 PM

Pada lengkung ingat-kepersisan, titik yang sama diplot dengan paksi yang berbeza. Amaran: Titik merah pertama di sebelah kiri (0% ingat, 100% ketepatan) sepadan dengan 0 peraturan. Titik kedua di sebelah kiri ialah peraturan pertama, dan seterusnya. Skope-rules menggunakan model pokok untuk menjana calon peraturan. Mula-mula bina beberapa pepohon keputusan dan pertimbangkan laluan dari nod akar ke nod dalaman atau nod daun sebagai calon peraturan. Peraturan calon ini kemudiannya ditapis oleh beberapa kriteria yang telah ditetapkan seperti ketepatan dan ingat semula. Hanya mereka yang mempunyai ketepatan dan ingatan di atas ambang mereka dikekalkan. Akhir sekali, penapisan persamaan digunakan untuk memilih peraturan dengan kepelbagaian yang mencukupi. Secara umum, Skope-rules digunakan untuk mengetahui punca setiap perkara

Kemas kini OpenOOD v1.5: perpustakaan kod pengesanan luar pengedaran yang komprehensif dan tepat serta platform ujian, menyokong kedudukan dalam talian dan ujian satu klik Kemas kini OpenOOD v1.5: perpustakaan kod pengesanan luar pengedaran yang komprehensif dan tepat serta platform ujian, menyokong kedudukan dalam talian dan ujian satu klik Jul 03, 2023 pm 04:41 PM

Pengesanan luar pengedaran (OOD) adalah penting untuk pengendalian sistem pintar dunia terbuka yang boleh dipercayai, tetapi kaedah pengesanan berorientasikan objek semasa mengalami "ketidakkonsistenan penilaian" (ketidakkonsistenan penilaian). Kerja sebelumnya OpenOODv1 menyatukan penilaian pengesanan OOD, tetapi masih mempunyai batasan dalam skalabilitas dan kebolehgunaan. Baru-baru ini, pasukan pembangunan sekali lagi mencadangkan OpenOODv1.5 Berbanding dengan versi sebelumnya, penilaian kaedah pengesanan OOD baharu telah dipertingkatkan dengan ketara dalam memastikan ketepatan, penyeragaman dan kemesraan pengguna. Kertas Imej: https://arxiv.org/abs/2306.09301OpenOODCodebase:htt

Bagaimana untuk mencari bilangan parameter yang disediakan oleh runtime dalam Java? Bagaimana untuk mencari bilangan parameter yang disediakan oleh runtime dalam Java? Sep 23, 2023 pm 01:13 PM

Di Java, satu cara untuk menghantar parameter semasa runtime adalah dengan menggunakan baris arahan atau terminal. Apabila mendapatkan semula nilai ini untuk parameter baris arahan, kita mungkin perlu mencari bilangan parameter yang disediakan oleh pengguna pada masa jalan, yang boleh dicapai dengan bantuan atribut panjang. Artikel ini bertujuan untuk menerangkan proses lulus dan mendapatkan bilangan hujah yang dibekalkan pengguna dengan bantuan program sampel. Dapatkan bilangan argumen yang disediakan oleh pengguna pada masa jalankan Sebelum mencari bilangan argumen baris arahan, langkah pertama kami ialah mencipta program yang membolehkan pengguna menghantar argumen pada masa jalankan. Parameter string[] Semasa menulis atur cara Java, kita sering menemui kaedah main(). Apabila JVM memanggil kaedah ini, aplikasi Java mula melaksanakan. Ia digunakan dengan hujah yang dipanggil String[]args

Perintah Linux: Bagaimana untuk menyemak bilangan proses telnet Perintah Linux: Bagaimana untuk menyemak bilangan proses telnet Mar 01, 2024 am 11:39 AM

Perintah Linux adalah salah satu alat yang sangat diperlukan dalam kerja harian pentadbir sistem. Ia boleh membantu kami menyelesaikan pelbagai tugas pengurusan sistem. Dalam kerja operasi dan penyelenggaraan, kadangkala perlu menyemak bilangan proses tertentu dalam sistem untuk mengesan masalah dan membuat pelarasan dalam masa. Artikel ini akan memperkenalkan cara menggunakan arahan Linux untuk menyemak bilangan proses telnet, mari kita belajar bersama. Dalam sistem Linux, kita boleh menggunakan arahan ps digabungkan dengan arahan grep untuk melihat bilangan proses telnet. Pertama, kita perlu membuka terminal,

Program C++ untuk mengira jumlah semua nombor ganjil antara 1 dan N Program C++ untuk mengira jumlah semua nombor ganjil antara 1 dan N Sep 06, 2023 pm 08:05 PM

Mendapatkan jumlah siri adalah salah satu tugas amalan yang paling mudah apabila kita mempelajari pengaturcaraan dan pembinaan logik. Dalam matematik, terdapat cara untuk mencari jumlah siri yang hadir dalam siri yang berbeza. Dalam pengaturcaraan kami menjananya satu demi satu dengan melaksanakan logik dan menambahnya berulang kali untuk mendapatkan jumlah atau melakukan apa-apa lagi seperti yang diperlukan. Dalam artikel ini, kami akan memperkenalkan teknik mendapatkan jumlah semua nombor ganjil hingga N menggunakan C++. Terdapat dua cara yang mungkin untuk mendapatkan jumlah ini, tetapi dengan kelainan. Mari kita lihat kaedah ini satu persatu. Algoritma dihadkan pada nombor N. Mulakan jumlah kepada 0. i berkisar antara 1 hingga N. Jika saya ialah nombor ganjil, maka. Jumlah:=jumlah+i. Jika ia berakhir. Paparkan jumlahnya. Contoh#include<iostre

Di Jawa, cari jumlah subarray maksimum subarray selepas membahagikan tatasusunan kepada subarray berdasarkan pertanyaan yang diberikan Di Jawa, cari jumlah subarray maksimum subarray selepas membahagikan tatasusunan kepada subarray berdasarkan pertanyaan yang diberikan Aug 29, 2023 am 11:21 AM

Kami mempunyai dua tatasusunan integer, satu dengan elemen yang dikira dan satu lagi dengan titik pisah yang diperlukan untuk memisahkan tatasusunan untuk menghasilkan subset, kita perlu mengira jumlah setiap subset dalam setiap pecahan dan mengembalikan subset maksimum Mari kita lihat contoh Pemahaman: - input −intarr[]=intarr[]={9,4,5,6,7}intsplitPoints[]={0,2,3,1}; 13,9,9] Penjelasan − Di sini kita menguraikan tatasusunan mengikut titik pecahannya dan mendapatkan subset maksimum selepas setiap pecahan dan selepas pecahan pertama → {9} dan {4,5,6,7 }>>Jumlah maksimum subarray ialah -22 selepas pemisahan kedua→{9},{4

Tulis kod menggunakan C++ untuk mencari bilangan subarray dengan nilai minimum dan maksimum yang sama Tulis kod menggunakan C++ untuk mencari bilangan subarray dengan nilai minimum dan maksimum yang sama Aug 25, 2023 pm 11:33 PM

Dalam artikel ini, kami akan menggunakan C++ untuk menyelesaikan masalah mencari bilangan subarray yang nilai maksimum dan minimumnya adalah sama. Berikut ialah contoh masalah −Input:array={2,3,6,6,2,4,4,4}Output:12Penjelasan:{2},{3},{6},{6}, {2 },{4},{4},{4},{6,6},{4,4},{4,4}dan{4,4,4}arethesubarraysyang boleh dibentuk denganmaksimumdanminimumelemensama.Input:array={3, 3, 1,5,

Cari bilangan cara untuk melintasi pokok N-ary menggunakan C++ Cari bilangan cara untuk melintasi pokok N-ary menggunakan C++ Sep 04, 2023 pm 05:01 PM

Memandangkan pokok N-ary, tugas kita adalah untuk mencari jumlah cara untuk melintasi pokok itu, cth. - untuk pokok di atas, output kita ialah 192. Untuk masalah ini, kita memerlukan sedikit pengetahuan tentang kombinatorik. Sekarang dalam masalah ini kita hanya perlu menyemak semua kemungkinan kombinasi setiap laluan dan ini akan memberi kita jawapannya. Kaedah untuk mencari penyelesaian Dalam kaedah ini, kita hanya perlu melakukan traversal hierarki, periksa bilangan anak setiap nod, dan kemudian darab secara berfaktor dengan jawapannya. Contoh kod C++ kaedah di atas #include&lt;bits/stdc++.h&gt;usingnamespacestd;structNode{//s

See all articles