Rumah > Artikel > pembangunan bahagian belakang > Dalam C++, keluarkan satu bit nombor binari untuk mendapatkan nilai maksimum
Bincangkan masalah yang diberi nombor binari. Kita perlu mengeluarkan sedikit daripadanya supaya bilangan yang selebihnya hendaklah maksimum di antara semua pilihan lain seperti
Input : N = 1011 Output: 111 Explanation: We need to remove one bit so removing 0 bit will give a maximum number than removing any 1’s bit. 111 > 101, 011. Input: 111 Output: 11 Explanation: Since all the bits are 1 so we can remove any bit.
Kaedah brute force akan memberikan bilangan keputusan maksimum iaitu dengan sedikit demi sedikit Alih keluar, bandingkan hasil yang berbeza dan dapatkan hasil yang maksimum.
Tetapi ia boleh dilakukan menggunakan pendekatan efisyen, iaitu jika kita mengeluarkan bit berlebihan yang minimum.
Kaedah yang cekap memberi impak yang minimum terhadap hasilnya.
Mula-mula, mulakan dari kanan dan lalui bahagian-bahagiannya.
Cari 0 dan keluarkannya di kaunter pertama.
Jika 0 tidak ditemui, keluarkan sebarang bit. .
Gelung akan berjalan ke n-1 kerana kita perlu menyimpan kurang satu elemen daripada nombor asal.
Atas ialah kandungan terperinci Dalam C++, keluarkan satu bit nombor binari untuk mendapatkan nilai maksimum. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!