劍指offer 簡單題

2021-10-17 05:03:16 字數 2490 閱讀 8231

用兩個棧來實現乙個佇列,完成佇列的push和pop操作。 佇列中的元素為int型別。

思路:變向隻變一次,s2空了之後再把s1全部搬過去

class solution

int pop()

}key = stack2.top();

stack2.pop();

return key;

}private:

stackstack1;

stackstack2;

};

把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。

輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。

note:給出的所有元素都大於0,若陣列大小為0,請返回0。

法一:判遞增

class solution 

};

法二:二分

class solution 

};

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

/*

struct listnode

};*/

class solution

else

it = it->next;

}if(phead1!=null)it->next=phead1;

else if(phead2)it->next=phead2;

return head->next;

}};

操作給定的二叉樹,將其變換為源二叉樹的映象。

/*

struct treenode

};*/

class solution

};

陣列中有乙個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入乙個長度為9的陣列。由於數字2在陣列**現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。

法一:map

class solution 

return 0;

}};

法二:排序後統計

class solution 

}return num;

}};

法三:多數投票

class solution 

};

輸入乙個整型陣列,陣列裡有正數也有負數。陣列中的乙個或連續多個整數組成乙個子陣列。求所有子陣列的和的最大值。要求時間複雜度為 o(n).

class solution 

return max;

}};

在乙個字串(0<=字串長度<=10000,全部由字母組成)中找到第乙個只出現一次的字元,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫).(從0開始計數)

class solution 

};*/

class solution

};

輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。 

在這裡,我們只需要考慮其平衡性,不需要考慮其是不是排序二叉樹 

平衡二叉樹(balanced binary tree),具有以下性質:它是一棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。

class solution 

int height(treenode* proot)

};

寫乙個函式,求兩個整數之和,要求在函式體內不得使用+、-、*、/四則運算符號。

class solution 

return num1;

}};

給定乙個陣列a[0,1,...,n-1],請構建乙個陣列b[0,1,...,n-1],其中b中的元素b[i]=a[0]*a[1]*...*a[i-1]*a[i+1]*...*a[n-1]。不能使用除法。(注意:規定b[0] = a[1] * a[2] * ... * a[n-1],b[n-1] = a[0] * a[1] * ... * a[n-2];) 

對於a長度為1的情況,b無意義,故而無法構建,因此該情況不會存在。

class solution 

return b;

}};

給定一棵二叉搜尋樹,請找出其中的第k小的結點。

法一:非遞迴

class solution 

if(!sta.empty())

}return null;

}};

法二:遞迴

利用返回值為null時遞增cnt進行計數

class solution 

};

劍指offer 簡單題 一

因為這幾題太簡單了,總結一下思路就行了。知識點 陣列 其實就是for迴圈加個判斷條件。牛客上有人呼叫了一些大數之類的api,感覺沒啥必要。為了ac可以,面試的時候這樣是真的秀逗了。給定乙個陣列a 0,1,n 1 請構建乙個陣列b 0,1,n 1 其中b中的元素b i a 0 a 1 a i 1 a ...

劍指offer題六

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

劍指offer 程式設計題

輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否可能為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的乙個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出序列。注意 這兩個序列的長度是相等的 ...