牛客網程式設計題1

2021-07-23 23:15:57 字數 2215 閱讀 9024

輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示。

思路:本題最初想簡單的求模算出等於1的位數,但是發現負數不行。其實簡單的做法應該是與

1相與,如果為

1,則原來為

1,迴圈移位判斷。但注意,要左移,要是右移,對於負數會一直在高位補

1,導致結果不準確。

class solution

flag=flag<<1; }

return count; }

};

給定乙個double型別的浮點數

base

和int

型別的整數

exponent

。求base

的exponent

次方。遞迴最簡單了。。。迭代比較麻煩。

class solution };

輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。

因為要求保證相對位置,所以只能相鄰的交換,不能用快排這種不穩定的演算法。

//兩個思路吧,第乙個思路:類似冒泡演算法,前偶後奇數就交換:

class solution }

} }};

//第二個思路:再建立乙個陣列

class solution

else

} vector::iterator ib2, ie2;

ib2 = array_temp.begin();

ie2 = array_temp.end();

for (; ib2 != ie2; ib2++)             //將新陣列的數新增到老陣列 }

};

輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。

本題土辦法就是先遍歷一遍鍊錶,找到一共多少個,倒數第k個就是正數第

count-k+1

個,從頭再遍歷一遍,注意

k=0和

k>count

的情況的處理,都返回

null

;但是有個非常好的思路2.用兩個指標,

1個跑了

k-1個時,第

2 個再開跑,則

1跑到底時,第

2個指標指標所指就是要找的倒數第k個。

思路1:

class solution

if(k>count)

return null;

int find=count-k+1;

int x=1;

p=plisthead;

while(x

p=p->next;

x++; }

return p; }

};思路二

時間複雜度o(n),

一次遍歷即可

public class solution

k--;

} //如果節點個數小於所求的倒數第

k個節點,則返回空

if(count

return pre; }

}

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。

class solution else */

while(phead1 != null && phead2 != null) else

phead1 = phead1->next;

} else else

phead2 = phead2->next; }

} if(phead1 == null)

if(phead2 == null)

return result;

} };

輸入兩棵二叉樹a,

b,判斷

b是不是

a的子結構。(

ps:我們約定空樹不是任意乙個樹的子結構)

本題要注意,b可能在

a的左子樹或者

a,或者

a的右子樹中,注意比較方法。

class solution

bool issubtree(treenode* proot1 , treenode* proot2) };

定義棧的資料結構,請在該型別中實現乙個能夠得到棧最小元素的min函式。

class solution }

void pop()

int top()

int min() };

牛客網程式設計題

參考了排行榜大神 1.計算字串最後乙個單詞的長度,單詞以空格隔開 a raw input b a.split print len b 1 2.寫出乙個程式,接受乙個有字母和數字以及空格組成的字串,和乙個字元,然後輸出輸入字串中含有該字元的個數。不區分大小寫 a raw input lower b r...

牛客網 程式設計題2

給定乙個陣列序列,需要求選出乙個區間,使得該區間是所有區間中經過如下計算的值最大的乙個 區間中的最小數 區間所有數的和最後程式輸出經過計算後的最大值即可,不需要輸出具體的區間。如給定序列 6 2 1 則根據上述公式,可得到所有可以選定各個區間的計算值 6 6 6 36 2 2 2 4 1 1 1 1...

判斷作弊 牛客 程式設計 牛客網刷程式設計題

1 時間限制 c c 1秒,其他語言2秒空間限制 c c 32m,其他語言64m 計算字串最後乙個單詞的長度,單詞以空格隔開。輸入描述 一行字串,非空,長度小於5000。輸出描述 整數n,最後乙個單詞的長度。示例1輸入 hello world 輸出 include int main char str...