Number of subarrays with n numbers are: 6



Pengaturcaraan dalam C++, cari bilangan subarray dengan nombor ganjil m
Jika anda pernah menggunakan C++, anda mesti tahu apa itu subarray dan betapa bergunanya ia. Seperti yang kita semua tahu bahawa dalam C++ kita boleh menyelesaikan pelbagai masalah matematik dengan mudah. Jadi, dalam artikel ini, kami akan menerangkan cara untuk mencari maklumat lengkap nombor ganjil M dengan bantuan subarray ini dalam C++.
Dalam masalah ini, kita perlu mencari beberapa subarray dan integer m yang terdiri daripada tatasusunan yang diberikan, di mana setiap subarray mengandungi tepat m nombor ganjil. Berikut ialah contoh mudah pendekatan ini -
Input : array = { 6,3,5,8,9 }, m = 2 Output : 5 Explanation : Subarrays with exactly 2 odd numbers are { 3,5 }, { 6,3,5 }, { 3,5,8 }, { 5,8,9 }, { 6,3,5,8 }, { 3,5,8,9 } Input : array = { 1,6,3,2,5,4 }, m = 2 Output : 6 Explanation : Subarrays with exactly 2 odd numbers are { 1,6,3 }, { 3,2,5 }, { 1,6,3,2 }, { 6,3,2,5 }, { 3,2,5,4 }, { 6,3,2,5,4 }
Pendekatan pertama
Dalam pendekatan ini semua sub-tatasusunan yang mungkin dijana daripada tatasusunan yang diberikan, Dan semak sama ada setiap subarray mempunyai betul-betul m nombor ganjil. Ini ialah kaedah penjanaan dan carian mudah dengan kerumitan masa O(n2).
Contoh
#include <bits/stdc++.h> using namespace std; int main (){ int a[] = { 1, 6, 3, 2, 5, 4 }; int n = 6, m = 2, count = 0; // n is size of array, m numbers to be find in subarrays, // count is number of subarray with m odd numbers for (int i = 0; i < n; i++){ // outer loop to process each element. int odd = 0; for (int j = i; j < n; j++) {// inner loop to find subarray with m number if (a[j] % 2) odd++; if (odd == m) // if odd numbers become equals to m. count++; } } cout << "Number of subarrays with n numbers are: " << count; return 0; }
Output
Number of subarrays with n numbers are: 6
Penerangan kod di atas
#🎜 kod ini🎜#Bersisipkan kod ini cari subarrays ganjil, gelung luar digunakan untuk menambah "i", yang akan digunakan untuk memproses setiap elemen dalam tatasusunan. Gelung dalam digunakan untuk mencari subarray dan memproses elemen sehingga pembilang ganjil mencapai m, menambah kiraan pembilang hasil untuk setiap subarray yang ditemui, dan akhirnya mencetak hasil yang disimpan dalam kiraan #🎜🎜 ##🎜 🎜#Kaedah keduaKaedah lain ialah mencipta tatasusunan untuk menyimpan bilangan awalan ganjil "i", memproses setiap elemen dan menambah bilangan nombor ganjil setiap kali nombor ganjil dijumpai. Apabila bilangan nombor ganjil melebihi atau sama dengan m, tambahkan nombor pada kedudukan (ganjil - m) dalam tatasusunan awalan kepadanya. Apabila nombor ganjil menjadi lebih besar daripada atau sama dengan m, kita mengira bilangan sub-tatasusunan yang terbentuk sehingga indeks dan nombor "ganjil - m" ditambahkan pada pembolehubah kiraan. Selepas setiap elemen diproses, hasilnya disimpan dalam pembolehubah kiraan. Contoh#include <bits/stdc++.h> using namespace std; int main (){ int array[ ] = { 1, 6, 3, 2, 5, 4 }; int n = 6, m = 2, count = 0, odd = 0, i; int prefix_array[n + 1] = { 0 }; // outer loop to process every element of array for (i = 0; i < n; i++){ prefix_array[odd] = prefix_array[odd] + 1; // implementing value at odd index in prefix_array[ ] // if array element is odd then increment odd variable if (array[i] % 2 == 0) odd++; // if Number of odd element becomes equal or greater than m // then find the number of possible subarrays that can be formed till the index. if (odd >= m) count += prefix_array[odd - m]; } cout << "Number of subarrays with n numbers are: " << count; return 0; }
Number of subarrays with n numbers are: 6
Salin selepas log masukSalin selepas log masuk
Penerangan kod di atasNumber of subarrays with n numbers are: 6
#🎜🎜🎜 nilai permulaan # dan initis🎜 -# 🎜🎜#int array[ 6 ] = { 1, 6, 3, 2, 5, 4 };
int n = 6, m = 2, count = 0, odd = 0, i;
int prefix_array[n + 1] = { 0 };
Salin selepas log masuk
Di sini, kita mulakan pembolehubah n dengan saiz tatasusunan, mulakan pembolehubah m dengan bilangan nombor ganjil yang kita ingin cari, mulakan kiraan dengan 0 untuk mengekalkan kiraan yang mungkin subarrays, mulakan nombor ganjil dengan 0, dan A prefix_array saiz n + 1 memulakan pembolehubah n 0.Memahami gelungint array[ 6 ] = { 1, 6, 3, 2, 5, 4 }; int n = 6, m = 2, count = 0, odd = 0, i; int prefix_array[n + 1] = { 0 };
for (i = 0; i < n; i++){ prefix_array[odd] = prefix_array[odd] + 1; if (array[i] % 2 == 0) odd++; if (odd >= m) count += prefix_array[odd - m]; }
Hasilkan setiap subarray dan semak sama ada terdapat nombor ganjil di dalamnya, dan tambahkan kiraan setiap subarray yang ditemui. Kerumitan masa kod ini ialah O(n2).
- Kaedah yang cekap, lelaran melalui setiap elemen tatasusunan dan cipta tatasusunan awalan, kemudian gunakan bantuan tatasusunan awalan. Kerumitan masa kod ini ialah O(n).
- Saya harap artikel ini membantu anda memahami masalah dan penyelesaiannya.
Atas ialah kandungan terperinci Pengaturcaraan dalam C++, cari bilangan subarray dengan nombor ganjil m. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Kita semua tahu nombor yang bukan kuasa dua mana-mana nombor, seperti 2, 3, 5, 7, 8, dll. Terdapat N nombor bukan persegi, dan adalah mustahil untuk mengetahui setiap nombor. Jadi, dalam artikel ini, kami akan menerangkan segala-galanya tentang nombor tanpa kuasa dua atau bukan kuasa dua dan cara untuk mencari nombor bukan kuasa dua N dalam C++. Nombor bukan kuasa dua ken Jika nombor ialah kuasa dua integer, maka nombor itu dipanggil kuasa dua sempurna. Beberapa contoh nombor kuasa dua sempurna ialah -1isquareof14issquareof29issquareof316issquareof425issquareof5 Jika nombor bukan kuasa dua mana-mana integer, maka nombor itu dipanggil bukan kuasa dua. Sebagai contoh, 15 nombor bukan kuasa dua yang pertama ialah -2,3,5,6,

Dalam artikel ini, kita akan mempelajari tentang algoritma pembalikan untuk memutar tatasusunan yang diberikan ke kanan dengan elemen k, contohnya −Input:arr[]={4,6,2,6,43,7,3,7}, k= 4Output:{43,7,3,7,4,6,2,6}Penjelasan:Pusingeachelementofarrayby4-elementtotherightmemberi{43,7,3,7,4,6,2,6}.Input:arr[]= {8 ,5,8,2,1,4,9,3},k=3Output:{4,9,3,8,5,8,2,1} Cari penyelesaian

Bulatan ialah rajah tertutup. Semua titik pada bulatan adalah sama jarak dari titik di dalam bulatan. Titik tengah dipanggil pusat bulatan. Jarak dari satu titik ke pusat bulatan dipanggil jejari. Luas ialah perwakilan kuantitatif bagi rentang dimensi bagi rajah tertutup. Luas bulatan ialah kawasan yang tertutup dalam dimensi bulatan. Formula untuk mengira luas bulatan, Luas=π*r*r Untuk mengira luas, kami memberikan jejari bulatan sebagai input, kami akan menggunakan formula untuk mengira luas, algoritma LANGKAH1: Takeradiusasinputfromtheuserusingstdinput.STEP2 : Kirakaluas bulatan, luas=(

Kami memerlukan pengetahuan yang betul untuk mencipta beberapa pasangan unik dalam sintaks tatasusunan C++. Semasa mencari bilangan pasangan unik, kami mengira semua pasangan unik dalam tatasusunan yang diberikan iaitu semua pasangan yang mungkin boleh dibentuk di mana setiap pasangan harus unik. Contohnya -Input:array[]={5,5,9}Output:4Explanation:Thenumberofalluniquepairsare(5,5),(5,9),(9,5)and(9,9).Input:array[] = {5,4,3,2,2}Output:16 Cara Mencari Penyelesaian Terdapat dua cara untuk menyelesaikan masalah ini, iaitu −

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,

Dalam artikel ini kami akan menerangkan cara untuk mencari hubungan refleksif pada set. Dalam masalah ini, kita diberi nombor n, dan set n nombor asli, dan kita mesti menentukan bilangan hubungan refleksif. Hubungan refleksif - Suatu hubungan R dikatakan sebagai hubungan refleksif pada set A jika bagi setiap 'a' dalam set A, (a, a) tergolong dalam hubungan R. Contohnya -Input:x=1Output:1Explanation:set={1},reflexiverelationsonA*A:{{1}}Input:x=2Output:4Explanation:set={1,2},reflexiverelationsonA*

Dalam masalah ini, kita diberikan penunjuk kepada kepala senarai terpaut dan integer k. Dalam kumpulan saiz k, kita perlu membalikkan senarai terpaut. Contohnya -Input:1<->2<->3<->4<->5(doublylinkedlist),k=3Output:3<->2<->1<->5<->4 mencari penyelesaian Kaedah Dalam masalah ini, kami akan merumuskan algoritma rekursif untuk menyelesaikan masalah ini. Dalam kaedah ini kita akan menggunakan rekursi dan menyelesaikan masalah menggunakan rekursi. Contoh#include<iostream&

Dalam masalah yang diberikan, kita mempunyai tatasusunan dan kita perlu memutar tatasusunan dengan elemen d menggunakan algoritma penyongsangan seperti −Input:arr[]=[1,2,3,4,5,6,7], d=2Output: arr[]=[3,4,5,6,7,1,2]Penjelasan:Asyoucanseewehavetorotatethisarraybyd=2butourmaintaskistoiachievethisbyusesingareversaltechnique Kami melakukan beberapa pengiraan pada putaran tatasusunan menggunakan teknik penyongsangan dan membuat kesimpulan: Pertama, kita membalikkan.
