Rumah > Artikel > pembangunan bahagian belakang > Cari indeks permulaan dan akhir elemen dalam tatasusunan tidak diisih dalam C++
Dalam masalah ini, kita mendapat tatasusunan aar[] yang mengandungi n nilai integer tidak diisih dan val integer. Tugas kita ialah mencari indeks mula dan akhir elemen dalam tatasusunan yang tidak diisih.
Untuk kejadian elemen dalam tatasusunan, kami akan kembali,
"indeks mula dan indeks akhir" (jika ditemui dua kali atau lebih dalam tatasusunan).
"indeks tunggal" jika ditemui
"elemen tidak hadir" jika tidak hadir dalam tatasusunan.
Mari kita ambil contoh untuk memahami masalah,
Input : arr[] = {2, 1, 5, 4, 6, 2, 3}, val = 2 Output : starting index = 0, ending index = 5
Penjelasan
Elemen 2 muncul dua kali,
pertama kali pada indeks
pada masa indeks = 0,
Input : arr[] = {2, 1, 5, 4, 6, 2, 3}, val = 5 Output : Present only once at index 2Penjelasan Elemen 5 muncul sekali sahaja pada indeks = 2,Contoh 3
Input : arr[] = {2, 1, 5, 4, 6, 2, 3}, val = 7 Output : Not present in the array!
Langkah 1
- Gelung melalui tatasusunanLangkah 1.1
- Gunakan indeks pertama untuk melintasi dari awal dan akhir terakhir.Langkah 1.2
- Jika nilai pada mana-mana indeks adalah sama dengan val. Jangan naikkan nilai indeks.Langkah 1.3
- Kembali jika kedua-dua indeks mempunyai nilai yang sama.#include <iostream> using namespace std; void findStartAndEndIndex(int arr[], int n, int val) { int start = 0; int end = n -1 ; while(1){ if(arr[start] != val) start++; if(arr[end] != val) end--; if(arr[start] == arr[end] && arr[start] == val) break; if(start == end) break; } if (start == end ){ if(arr[start] == val) cout<<"Element is present only once at index : "<<start; else cout<<"Element Not Present in the array"; } else { cout<<"Element present twice at \n"; cout<<"Start index: "<<start<<endl; cout<<"Last index: "<<end; } } int main() { int arr[] = { 2, 1, 5, 4, 6, 2, 9, 0, 2, 3, 5 }; int n = sizeof(arr) / sizeof(arr[0]); int val = 2; findStartAndEndIndex(arr, n, val); return 0; }
Element present twice at Start index: 0 Last index: 8🎜
Atas ialah kandungan terperinci Cari indeks permulaan dan akhir elemen dalam tatasusunan tidak diisih dalam C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!