劍指Offer 036 陣列中的逆序對

2021-07-11 15:17:41 字數 1959 閱讀 6643

牛客oj:陣列中的逆序對

九度oj:

github**: 036-陣列中的逆序對

csdn題解:劍指offer–036-陣列中的逆序對

牛客oj

九度oj

csdn題解

github**

036-陣列中的逆序對

1348-陣列中的逆序對

劍指offer–036-陣列中的逆序對

036-陣列中的逆序對

您也可以選擇回到目錄-劍指offer–題集目錄索引

題目描述

在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。

輸入乙個陣列,求出這個陣列中的逆序對的總數

樣例輸入

7 5 6 4

樣例輸出

5

兩個 for 迴圈列舉所有的數對,如果是逆序對,則 count++,最終返回 count 即可。時間複雜度o(

n2)

**如下

#include 

#include

using

namespace

std;

#define __tmain main

#ifdef __tmain

#define debug cout

#else

#define debug 0 && cout

#endif // __tmain

class solution

int count = 0;

for(unsigned

int i = 0; i < elem.size( ); i++) /// 迴圈每乙個位置的資料}}

return count;

}};int __tmain( )

; vector

vec(arr, arr + 4);

cout

0;}

考慮一下,逆序是說a[i]>a[j],i

class solution

return bubblesort(elem);

}int bubblesort(vector

elem)}}

return count;

}};

class solution

vector

temp(elem.size( ));

int count = inversepairscore(elem, 0, elem.size( ) - 1, temp);

return count;

}int mergeelem(vector

&elem, int start, int mid, int end, vector

&temp)//陣列的歸併操作

else

}debug <<"count = "

= start)//表示前半段陣列中還有元素未放入臨時陣列

while(j>mid)

//將臨時陣列中的元素寫回到原陣列當中去。

for(i = 0; i < k; i++)

copy(elem.begin(), elem.end(), ostream_iterator(cout," "));

return count;

}int inversepairscore(vector

&elem,int start,int end, vector

&temp)

return inversions;

}};

劍指Offer 036兩個鍊錶的第乙個公共結點

036兩個鍊錶的第乙個公共結點 題目 輸入兩個鍊錶,找出它們的第乙個公共結點。其實我一開始並不懂什麼是公共結點,上網一搜才知道,下面就是兩個鍊錶有公共結點 公共結點就是兩個鍊錶的結點的位址值相同,不是結點所含的值相同 方法一 hashset儲存法 思路 可以新建乙個hashset的set,然後先將a...

劍指offer 陣列

資料是最簡單的資料結構,它佔據一塊連續的記憶體並按照順序儲存資料。建立陣列時,首先指點陣列的容量大小,然後根據大小分配記憶體。缺點 空間效率不高。經常有空閒的區域滅有得到充分利用。優點 時間效率很高。可以根據時間效率高的特點,來實現簡單的雜湊表 把陣列的下標設為雜湊表的鍵值,陣列中的每乙個數字設為雜...

劍指offer 陣列

public class 03 陣列中的重複數字 swap number,number i i return 1 交換 public void swap int number,int i,int j public class 03 陣列中的重複數字 return 1 public intfindre...