用兩個棧來實現乙個佇列,完成佇列的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就不可能是該壓棧序列的彈出序列。注意 這兩個序列的長度是相等的 ...