欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java ArrayDeque使用方法詳解

 更新時(shí)間:2016年03月29日 11:44:45   作者:我要天天向上  
這篇文章主要為大家詳細(xì)介紹了Java ArrayDeque的使用方法,感興趣的小伙伴們可以參考一下

題目要求為:
卡拉茲(Callatz)猜想:

對(duì)任何一個(gè)自然數(shù)n,如果它是偶數(shù),那么把它砍掉一半;如果它是奇數(shù),那么把(3n+1)砍掉一半。這樣一直反復(fù)砍下去,最后一定在某一步得到n=1。當(dāng)我們驗(yàn)證卡拉茲猜想的時(shí)候,為了避免重復(fù)計(jì)算,可以記錄下遞推過(guò)程中遇到的每一個(gè)數(shù)。例如對(duì)n=3進(jìn)行驗(yàn)證的時(shí)候,我們需要計(jì)算3、5、8、4、2、1,則當(dāng)我們對(duì)n=5、8、4、2進(jìn)行驗(yàn)證的時(shí)候,就可以直接判定卡拉茲猜想的真?zhèn)危恍枰貜?fù)計(jì)算,因?yàn)檫@4個(gè)數(shù)已經(jīng)在驗(yàn)證3的時(shí)候遇到過(guò)了,我們稱5、8、4、2是被3“覆蓋”的數(shù)。我們稱一個(gè)數(shù)列中的某個(gè)數(shù)n為“關(guān)鍵數(shù)”,如果n不能被數(shù)列中的其他數(shù)字所覆蓋。

現(xiàn)在給定一系列待驗(yàn)證的數(shù)字,我們只需要驗(yàn)證其中的幾個(gè)關(guān)鍵數(shù),就可以不必再重復(fù)驗(yàn)證余下的數(shù)字。你的任務(wù)就是找出這些關(guān)鍵數(shù)字,并按從大到小的順序輸出它們。

輸入格式:每個(gè)測(cè)試輸入包含1個(gè)測(cè)試用例,第1行給出一個(gè)正整數(shù)K(<100),第2行給出K個(gè)互不相同的待驗(yàn)證的正整數(shù)n(1<n<=100)的值,數(shù)字間用空格隔開(kāi)。

輸出格式:每個(gè)測(cè)試用例的輸出占一行,按從大到小的順序輸出關(guān)鍵數(shù)字。數(shù)字間用1個(gè)空格隔開(kāi),但一行中最后一個(gè)數(shù)字后沒(méi)有空格。

輸入樣例:
6
3 5 6 7 8 11
輸出樣例:
7 6

代碼如下:

<span style="font-size:14px;"> 
import java.util.ArrayDeque; 
import java.util.ArrayList; 
import java.util.Deque; 
import java.util.List; 
import java.util.Queue; 
import java.util.Scanner; 
import java.util.SortedSet; 
import java.util.TreeSet; 
 
public class PAT1005 { 
 
  public static void main(String[] args) { 
    // TODO Auto-generated method stub 
 
    Scanner scanner = new Scanner(System.in); 
    int numSize=scanner.nextInt(); 
    ArrayDeque<Integer> newArrayDeque=new ArrayDeque<Integer>(); 
    ArrayDeque<Integer> closeArrayDeque=new ArrayDeque<Integer>(); 
    int i; 
    while (scanner.hasNext()) {           //讀取鍵盤(pán)輸入值 
      for (i = 0; i < numSize; i++) { 
        newArrayDeque.add(scanner.nextInt()); 
         
      } 
      if (i>=numSize) { 
        break; 
      } 
    } 
    int temp; 
    for (Integer integer : newArrayDeque) {    //將非關(guān)鍵數(shù)存入closeArrayDeque中 
      temp=integer;  
      while (temp!=1) { 
        if (temp%2==0) { 
          temp=temp/2; 
          if (newArrayDeque.contains(temp)) { 
            closeArrayDeque.add(temp); 
          } 
           
        }else { 
          temp=(temp*3+1)/2; 
          if (newArrayDeque.contains(temp)) { 
            closeArrayDeque.add(temp); 
          } 
        } 
      } 
    } 
    SortedSet<Integer> sortedSet=new TreeSet<Integer>(); //sortedSet用于存放關(guān)鍵數(shù) 
    for (Integer integer : newArrayDeque) { 
      if (!closeArrayDeque.contains(integer)) { 
        sortedSet.add(integer); 
      } 
    } 
    int[] leftInt=new int[sortedSet.size()]; 
    int j=sortedSet.size()-1; 
    for (Integer integer : sortedSet) { 
      leftInt[j]=integer; 
      j--; 
    } 
    for (int j2 = 0; j2 < leftInt.length; j2++) {    //按照從大到小的順序輸出關(guān)鍵數(shù) 
      if (j2==leftInt.length-1) { 
        System.out.println(leftInt[j2]); 
      }else { 
        System.out.print(leftInt[j2]+" "); 
      } 
       
    } 
  } 
 
} 
</span> 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。

相關(guān)文章

  • Spring @value和@PropertySource注解使用方法解析

    Spring @value和@PropertySource注解使用方法解析

    這篇文章主要介紹了Spring @value和@PropertySource注解使用方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • java9版本特性資源自動(dòng)關(guān)閉的語(yǔ)法增強(qiáng)

    java9版本特性資源自動(dòng)關(guān)閉的語(yǔ)法增強(qiáng)

    這篇文章主要為大家介紹了java9版本特性資源自動(dòng)關(guān)閉的語(yǔ)法增強(qiáng)的詳細(xì)使用說(shuō)明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • java 中的instanceof用法詳解及instanceof是什么意思(推薦)

    java 中的instanceof用法詳解及instanceof是什么意思(推薦)

    instanceof 是 Java 的保留關(guān)鍵字。它的作用是測(cè)試它左邊的對(duì)象是否是它右邊的類的實(shí)例,返回 boolean 的數(shù)據(jù)類型。接下來(lái)通過(guò)本文給大家介紹java 中的instanceof用法詳解及instanceof是什么意思,需要的朋友參考下吧
    2017-11-11
  • Java 中的 DataInputStream 介紹_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java 中的 DataInputStream 介紹_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    DataInputStream 是數(shù)據(jù)輸入流。它繼承于FilterInputStream。接下來(lái)通過(guò)本文給大家介紹Java 中的 DataInputStream的相關(guān)知識(shí),需要的朋友參考下吧
    2017-05-05
  • 如何使用Java redis實(shí)現(xiàn)發(fā)送手機(jī)驗(yàn)證碼功能

    如何使用Java redis實(shí)現(xiàn)發(fā)送手機(jī)驗(yàn)證碼功能

    這篇文章主要介紹了如何使用Java redis實(shí)現(xiàn)發(fā)送手機(jī)驗(yàn)證碼功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Java實(shí)現(xiàn)統(tǒng)計(jì)文檔中關(guān)鍵字出現(xiàn)的次數(shù)

    Java實(shí)現(xiàn)統(tǒng)計(jì)文檔中關(guān)鍵字出現(xiàn)的次數(shù)

    這篇文章主要為大家分享了利用Java語(yǔ)言實(shí)現(xiàn)統(tǒng)計(jì)關(guān)鍵字在文檔中出現(xiàn)的次數(shù)的方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-05-05
  • Java中的ThreadLocalMap源碼解讀

    Java中的ThreadLocalMap源碼解讀

    這篇文章主要介紹了Java中的ThreadLocalMap源碼解讀,ThreadLocalMap是ThreadLocal的內(nèi)部類,是一個(gè)key-value數(shù)據(jù)形式結(jié)構(gòu),也是ThreadLocal的核心,需要的朋友可以參考下
    2023-09-09
  • netty中的ByteBuf源碼詳解

    netty中的ByteBuf源碼詳解

    這篇文章主要介紹了netty中的ByteBuf源碼詳解,ByteBuf,顧名思義,就是字節(jié)緩沖區(qū),是Netty中非常重要的一個(gè)組件,某些場(chǎng)景下性能不是太好,netty開(kāi)發(fā)團(tuán)隊(duì)重新設(shè)計(jì)了ByteBuf用以替代原生ByteBuffer,需要的朋友可以參考下
    2023-11-11
  • 詳解Spring Boot對(duì) Apache Pulsar的支持

    詳解Spring Boot對(duì) Apache Pulsar的支持

    Spring Boot通過(guò)提供spring-pulsar和spring-pulsar-reactive自動(dòng)配置支持Apache Pulsar,類路徑中這些依賴存在時(shí),Spring Boot自動(dòng)配置命令式和反應(yīng)式Pulsar組件,PulsarClient自動(dòng)注冊(cè),默認(rèn)連接本地Pulsar實(shí)例,感興趣的朋友一起看看吧
    2024-11-11
  • 運(yùn)行Springboot測(cè)試類查詢數(shù)據(jù)庫(kù)數(shù)據(jù)顯示白網(wǎng)頁(yè)問(wèn)題及解決方法

    運(yùn)行Springboot測(cè)試類查詢數(shù)據(jù)庫(kù)數(shù)據(jù)顯示白網(wǎng)頁(yè)問(wèn)題及解決方法

    Spring Boot應(yīng)用未能啟動(dòng)的原因是它沒(méi)有找到合適的數(shù)據(jù)庫(kù)配置具體來(lái)說(shuō),它需要一個(gè)數(shù)據(jù)源(DataSource),但未能在你的配置中找出,也沒(méi)有找到任何嵌入式數(shù)據(jù)庫(kù)(H2, HSQL 或 Derby),本文給大家分享運(yùn)行Springboot測(cè)試類查詢數(shù)據(jù)庫(kù)數(shù)據(jù)顯示白網(wǎng)頁(yè)問(wèn)題及解決方法,一起看看吧
    2023-11-11

最新評(píng)論