最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java簡單實現(xiàn)數(shù)組中的逆序?qū)?/h1>
 更新時間:2019年03月06日 08:17:12   作者:zz0129  
這篇文章主要為大家詳細(xì)介紹了java簡單實現(xiàn)數(shù)組中的逆序?qū)Γ哂幸欢ǖ膮⒖純r值,感興趣的小伙伴們可以參考一下

題目描述:

在數(shù)組中的兩個數(shù)字,如果前面一個數(shù)字大于后面的數(shù)字,則這兩個數(shù)字組成一個逆序?qū)?。輸入一個數(shù)組,求出這個數(shù)組中的逆序?qū)Φ目倲?shù)P。并將P對1000000007取模的結(jié)果輸出。 即輸出P%1000000007

解題思路:

一開始一頭霧水,后面想到了使用歸并排序的思想,其實有多少個逆序?qū)?,就是歸并排序的時候,后面的數(shù)要超越前面多少個,嗯,好像不是很好說,要不然直接看代碼吧。還要注意,題目當(dāng)中說要輸出取模的結(jié)果,這說明數(shù)據(jù)可能非常大,所以如果只是單純的在最后取模的話可能還是無法避免數(shù)據(jù)太大的影響,所以我們在每次更新count的時候就對其進(jìn)行取模運算。

剛好又練習(xí)了一遍歸并排序,記錄一下

public class Solution {
  int count;
  public int InversePairs(int [] array) {
    count = 0;
    if(array != null){
      divPairs(array, 0, array.length-1);
    }
    return count%1000000007;
  }
  
  public void divPairs(int[] array, int start, int end){
    if(start >= end)
      return;
    int mid = (start + end)>>1;
    divPairs(array, start, mid);
    divPairs(array, mid+1, end);
    
    mergePairs(array, start, mid, end);
  }
  
  public void mergePairs(int[] array, int start, int mid, int end){
    int i = start, j = mid+1, k = 0;
    int[] temp = new int[end-start+1];
    while(i <= mid && j <= end){
      if(array[i] <= array[j]){
        temp[k++] = array[i++];
      }else{
        temp[k++] = array[j++];
        count += mid - i + 1;
        count %= 1000000007;
      }
    }
    while(i <= mid){
      temp[k++] = array[i++];
    }
    while(j <= end){
      temp[k++] = array[j++];
    }
    for(int x = 0; x < temp.length; x++){
      array[start+x] = temp[x];
    }
  }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 模仿百度紅包福袋界面實例代碼

    模仿百度紅包福袋界面實例代碼

    新年到新年到,紅包搶不停。在我搶紅包的時候意外的發(fā)現(xiàn)了百度的福袋界面挺不錯的,于是抽時間專門寫篇文章來完成百度紅包界面吧
    2016-02-02
  • Java多線程之ThreadLocal淺析

    Java多線程之ThreadLocal淺析

    這篇文章主要分析了Java多線程ThreadLocal,ThreadLocal叫做線程變量,用于在多線程環(huán)境下創(chuàng)建線程本地變量。想了解更多的可以參考本文
    2023-04-04
  • PowerJob的CleanService清理服務(wù)流程

    PowerJob的CleanService清理服務(wù)流程

    這篇文章主要為大家介紹了PowerJob的CleanService清理服務(wù)流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>
    2024-02-02
  • 關(guān)于SpringBoot配置文件application.properties的路徑問題

    關(guān)于SpringBoot配置文件application.properties的路徑問題

    這篇文章主要介紹了關(guān)于SpringBoot配置文件application.properties的路徑問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • lambda表達(dá)式與傳統(tǒng)接口函數(shù)實現(xiàn)方式對比詳解

    lambda表達(dá)式與傳統(tǒng)接口函數(shù)實現(xiàn)方式對比詳解

    這篇文章主要為大家介紹了lambda表達(dá)式與傳統(tǒng)接口函數(shù)實現(xiàn)方式對比詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家度偶多進(jìn)步早日升職加薪
    2022-03-03
  • Java中使用內(nèi)存映射實現(xiàn)大文件上傳實例

    Java中使用內(nèi)存映射實現(xiàn)大文件上傳實例

    這篇文章主要介紹了Java中使用內(nèi)存映射實現(xiàn)大文件上傳實例,本文對比測試了FileInputStream 或者FileOutputStream 抑或RandomAccessFile的頻繁讀寫操作,最后總結(jié)出映射到內(nèi)存后進(jìn)行讀寫以提高速度,需要的朋友可以參考下
    2015-01-01
  • 啟動Tomcat報錯Unsupported major.minor version xxx的解決方法

    啟動Tomcat報錯Unsupported major.minor version xxx的解決方法

    這篇文章主要為大家詳細(xì)介紹了啟動Tomcat報錯Unsupported major.minor version xxx的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 教你java面試時如何聊單例模式

    教你java面試時如何聊單例模式

    這篇文章主要給大家介紹了關(guān)于Java單例模式推薦的幾種模式,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-06-06
  • 解決idea update project 更新選項消失的問題

    解決idea update project 更新選項消失的問題

    這篇文章主要介紹了解決idea update project 更新選項消失的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • springboot2.1.7去除json返回字段中為null的字段

    springboot2.1.7去除json返回字段中為null的字段

    這篇文章主要介紹了springboot2.1.7去除json返回字段中為null的字段,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評論

牙克石市| 闽清县| 志丹县| 雷州市| 周至县| 山阴县| 黑龙江省| 尉氏县| 秭归县| 云安县| 永福县| 湛江市| 景德镇市| 七台河市| 浮梁县| 西盟| 志丹县| 乐陵市| 鄂托克前旗| 老河口市| 阿拉善盟| 拉孜县| 大新县| 普兰店市| 自治县| 宜昌市| 玛纳斯县| 景德镇市| 托克托县| 罗山县| 武邑县| 福安市| 祥云县| 竹北市| 陆良县| 吉林省| 修武县| 江北区| 息烽县| 古交市| 乡宁县|