剑指offer 算法 (代码的完整性)
生活随笔
收集整理的這篇文章主要介紹了
剑指offer 算法 (代码的完整性)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目描述
題目描述
輸入一個整數(shù)數(shù)組,實現(xiàn)一個函數(shù)來調(diào)整該數(shù)組中數(shù)字的順序,使得所有的奇數(shù)位于數(shù)組的前半部分,所有的偶數(shù)位于位于數(shù)組的后半部分,并保證奇數(shù)和奇數(shù),偶數(shù)和偶數(shù)之間的相對位置不變。
解析:(方法二)用兩個棧分別存奇偶數(shù),在出棧先賦予數(shù)組奇數(shù)后偶數(shù)(時間復(fù)雜度小)
class Solution { public:void reOrderArray(vector<int> &array) {if(array.size()==0){return;}vector<int> odd;vector<int> even;for(int i=0;i<array.size();i++){if(array[i]%2==0){even.push_back(array[i]);}else{odd.push_back(array[i]);}}for(int i=0;i<odd.size();i++){array[i]=odd[i];}for(int i = odd.size();i<array.size();i++){array[i]=even[i-odd.size()];}} };
給定一個double類型的浮點數(shù)base和int類型的整數(shù)exponent。求base的exponent次方。
class Solution { public:double Power(double base, int exponent) {if(equal(exponent,0.0)&&(exponent<0))//base為零 系數(shù)為負數(shù)return 0;unsigned int unexponent=(unsigned int) exponent;if(exponent<0)unexponent=(unsigned int) (-exponent);double result;result=powInput(base,unexponent);if(exponent<0)result=1.0/result;return result;}bool equal(double val1,double val2){if(((val1-val2)>-0.000001)&&((val1-val2)<0.000001))return true;elsereturn false;}double powInput(double base,int exponent){int i;double result=1.0;for(i=exponent;i>0;i--)result=base*result;return result;} };題目描述
輸入一個整數(shù)數(shù)組,實現(xiàn)一個函數(shù)來調(diào)整該數(shù)組中數(shù)字的順序,使得所有的奇數(shù)位于數(shù)組的前半部分,所有的偶數(shù)位于位于數(shù)組的后半部分,并保證奇數(shù)和奇數(shù),偶數(shù)和偶數(shù)之間的相對位置不變。
解析:(方法一)兩個指針p1,p2;p1指向奇數(shù),p2指向偶數(shù),當(dāng)p1指向的奇數(shù)在p2指向的偶數(shù)后時,保存p1的奇數(shù),后移從p2開始到p1前一位的數(shù)組的數(shù),把奇數(shù)賦給p2;p1,p2同時后移一位。直到p1指到數(shù)組尾(空間復(fù)雜度小)
解析:(方法二)用兩個棧分別存奇偶數(shù),在出棧先賦予數(shù)組奇數(shù)后偶數(shù)(時間復(fù)雜度小)
class Solution { public:void reOrderArray(vector<int> &array) {if(array.size()==0){return;}vector<int> odd;vector<int> even;for(int i=0;i<array.size();i++){if(array[i]%2==0){even.push_back(array[i]);}else{odd.push_back(array[i]);}}for(int i=0;i<odd.size();i++){array[i]=odd[i];}for(int i = odd.size();i<array.size();i++){array[i]=even[i-odd.size()];}} };
總結(jié)
以上是生活随笔為你收集整理的剑指offer 算法 (代码的完整性)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 剑指offer 算法 (位运算)
- 下一篇: 剑指offer 算法 (代码的鲁棒性)