Rumah >Java >javaTutorial >Periksa sama ada elemen timbunan berpasangan berturut -turut di Java
Stack
yang terakhir (LIFO) . Apabila menggunakan timbunan, anda mungkin menghadapi masalah yang menarik, iaitu untuk memeriksa sama ada unsur -unsur timbunan berterusan secara berpasangan. Dalam artikel ini, kita akan belajar bagaimana menyelesaikan masalah ini menggunakan Java untuk memastikan penyelesaiannya adalah cekap dan jelas.
Pernyataan Masalah masukkan
output
<code>4, 5, 2, 3, 10, 11</code>
langkah untuk memeriksa sama ada elemen stack dipasangkan dan berterusan
<code>元素是否成对连续?<br>true</code>Berikut adalah langkah -langkah untuk memeriksa sama ada elemen timbunan dipasangkan dan berterusan:
Saiz Stack Stack:
Pulihkan Stack:
<code class="language-java">import java.util.Stack; public class PairwiseConsecutiveChecker { public static boolean areElementsPairwiseConsecutive(Stack<integer> stack) { // 基本情况:如果堆栈为空或只有一个元素,则返回 true if (stack.isEmpty() || stack.size() == 1) { return true; } // 使用临时堆栈在检查时保存元素 Stack<integer> tempStack = new Stack<>(); boolean isPairwiseConsecutive = true; // 成对处理堆栈元素 while (!stack.isEmpty()) { int first = stack.pop(); tempStack.push(first); if (!stack.isEmpty()) { int second = stack.pop(); tempStack.push(second); // 检查这对元素是否连续 if (Math.abs(first - second) != 1) { isPairwiseConsecutive = false; } } } // 恢复原始堆栈 while (!tempStack.isEmpty()) { stack.push(tempStack.pop()); } return isPairwiseConsecutive; } public static void main(String[] args) { Stack<integer> stack = new Stack<>(); stack.push(4); stack.push(5); stack.push(2); stack.push(3); stack.push(10); stack.push(11); boolean result = areElementsPairwiseConsecutive(stack); System.out.println("元素是否成对连续? " + result); } }</integer></integer></integer></code>Sejak kami mengubah suai timbunan apabila memeriksa hak, sangat penting untuk memulihkannya ke keadaan asalnya selepas cek selesai. Ini memastikan bahawa timbunan tetap tidak berubah untuk sebarang operasi berikutnya.
kes kelebihan: Fungsi ini mengendalikan kes kelebihan, seperti timbunan kosong atau timbunan dengan hanya satu elemen, kembali benar kerana kes -kes ini memenuhi keadaan yang tidak penting.
kerumitan masa: kerumitan masa kaedah ini ialah o (n)
, di mana n ialah bilangan elemen dalam timbunan. Ini kerana kita hanya melintasi timbunan sekali, muncul dan menekan unsur -unsur seperti yang diperlukan.Kerumitan ruang: Kerana timbunan sementara digunakan, kerumitan ruang juga o (n)
.Kesimpulan Penyelesaian ini menyediakan cara yang cekap untuk memeriksa sama ada unsur -unsur dalam timbunan berterusan secara berpasangan. Kuncinya adalah untuk memproses timbunan secara berpasangan dan pastikan timbunan dipulihkan ke keadaan asalnya selepas operasi. Pendekatan ini mengekalkan integriti timbunan sambil menyediakan penyelesaian yang jelas dan berkesan.
Atas ialah kandungan terperinci Periksa sama ada elemen timbunan berpasangan berturut -turut di Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!