Two pointers技巧的應用

2021-06-30 16:42:15 字數 891 閱讀 9442

查詢陣列中兩個位置不同的數字之和為sum的個數。

先來看看暴力法,粗略估計,時間複雜度為0(n^2).

void violence(int *a,int totalnumber,int sum)

{ int count=0;//計算不匹配的結果次數

不匹配次數是41次,嗯,看起來結果還不錯的樣子。

來看看two pointers的做法

void two_pointers(int *a,int start,int end,int sum)

{ int count=0;

while(start

呶,不匹配2次,比暴力法要快多了,親們,是不是能看出two pointers的瀟瀟技巧呢?

順便再來看看實現兩個有序序列的合併吧。

void merge(int *b,int b_len,int *c,int c_len,int *d)

{ int i=0,j=0,c_index=0;

while(i

關於Two pointers的個人理解

剛剛在刷題的時候接觸到了一道題,題的大意是給出乙個遞增的數字序列,並給出乙個m,要求找到a,b兩個數字,且和為m,並且atwo pointers思想是對有序陣列的優化遍歷 如果根據題目中的思想,進行兩層列舉,則不可避免地會使時間複雜度到達o n 2 級別。但是可以針對序列遞增這一條進行優化 對這個有...

PM應具備的規劃技巧 顧客價值管理

乙個有效的企業策略,是建立在能夠吸引並維繫 高獲利顧客 high profit customers 的能力上的。我們不僅應該關心產品銷量的成長,更應該將焦點集中在顧客的成長上。因此,產品經理必須對產品市場有清楚的了解和評估。這些市場必須包括現有的和潛在的顧客,包括個別客戶 特定群組 市場細分,以及產...

微控制器開發中應掌握的幾個基本技巧

一 如何提高c語言程式設計 的效率 鄧巨集傑指出,用c語言進行微控制器程式設計是微控制器開發與應用的必然趨勢。他強調 如果使用c程式設計時,要達到最高的效率,最好熟悉所使用的c編譯器。先試驗一下每條c語言編譯以後對應的組合語言的語句行數,這樣就可以很明確的知道效率。在今後程式設計的時候,使用編譯效率...