劍指offer真題11 15

2021-09-03 08:01:44 字數 1288 閱讀 8152

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

//法一

//讓n減去1,我們發現,在讓他和原來的n按位與之後,n中的1會減少乙個,依次迴圈下去,就可以累計出1的個數,且這個方式不用擔心負數的問題

class solution

return count;

}};//法二

//定義乙個flag為1,左移一位就變成0010,迴圈下來,和n中的1依次按位與,再用計數器加起來即可

class solution

return count;

}};

第12題:給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方

class solution 

while(cur != 0)

return (exponent >= 0 ? res : (1/res));

}};

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

//法一:

class solution

else

++a1;

}vector::iterator a2, b2;

a2 = array_tmp.begin();

b2 = array_tmp.end();

for(; a2 != b2; ++a2)

}};//法二:氣泡排序

class solution }}

};

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

class solution 

else

return nullptr;

k--;

}while(fast->next != nullptr)

return slow;

}};

第15題:輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。

//迴圈

class solution

pnode->next = pprev;

pprev = pnode;

pnode = pnext;

}return preversehead;

}};//遞迴

class solution

};

劍指offer真題1 5

第一題 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。分析 因為這是乙個有序的二維陣列,且從左至右遞增,從上至下遞增,經過畫圖就會發現,再這個二維陣列中有兩...

劍指offer上的11 15題,希望自己能堅持下去

上面幾套題其實思路都是一樣的,掌握了規律後其實很容易得到想要的結果,所以今天我就多寫寫,爭取盡快寫完這上面的試題。題目描述 輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示。題目分析 這道題本身並不算難,但是必須搞清楚負數補碼的關係後才好繼續,這方面也是我的弱點,所以我打算在這裡複習...

劍指offer題六

把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。note 給出的所有元素都大於0,若陣列大小為0,請返回0。public static void main string args ...