国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

Java每隔兩個(gè)數刪掉一個(gè)數問(wèn)題詳解

發(fā)布時(shí)間:2021-07-17 21:51 來(lái)源:腳本之家 閱讀:0 作者:橘白呀啊 欄目: 編程語(yǔ)言 歡迎投稿:712375056

題目描述

有一個(gè)數組a[N]順序存放0~N-1,要求每隔兩個(gè)數刪掉一個(gè)數,到末尾時(shí)循環(huán)至開(kāi)頭繼續進(jìn)行,求最后一個(gè)被刪掉的數的原始下標位置。

以8個(gè)數(N=7)為例:{0,1,2,3,4,5,6,7},
0->1->2(刪除)->3->4->5(刪除)->6->7->0(刪除)
如此循環(huán)直到最后一個(gè)數被刪除。

輸入:
8

輸出:
6

以下是本篇文章正文內容,下面案例可供參考

解題思路

一看到這個(gè)題目,就想到了隊列的約瑟夫環(huán)的問(wèn)題
此題思路:將兩個(gè)數字取出來(lái)放到隊列的后邊,刪掉第三個(gè)數字,如此循環(huán),當隊列只剩一個(gè)數字的時(shí)候,刪掉它就是最后一個(gè)刪除的數字。

代碼如下

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

public class Main1 {
    /**
     * 每日一題-隔兩個(gè)刪數問(wèn)題
     * 類(lèi)似于約瑟夫環(huán)問(wèn)題
     * @param args
     */
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        if(scanner.hasNext()) {
            int n = scanner.nextInt();
            Queue<Integer> queue = new LinkedList<>();
            for (int i = 0; i < n; i++) {
                queue.offer(i);//放進(jìn)隊列中
            }
            while(queue.size()>1){
            //將兩個(gè)放到隊尾,再刪一個(gè)
                queue.offer(queue.poll());
                queue.offer(queue.poll());
                queue.poll();
            }
            System.out.println(queue.poll());
        }
    }
}

 到此這篇關(guān)于Java每隔兩個(gè)數刪掉一個(gè)數問(wèn)題詳解的文章就介紹到這了,更多相關(guān)Java每隔兩個(gè)數刪掉一個(gè)數 內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

免费看国产精品3A黄的视频| 亚洲AV永久无码精品一区二区国产| GOGOGO手机高清在线观看| 精品无码久久久久国产APP| 波多野结衣多次高潮三个老人| 久久无码专区国产精品|