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 ...