方法1:直接求解,但是要注意特殊情况的处理:即当指数为负,且底数为0的情况. #include<iostream> using namespace std; template<typename T> T myPow(T a, int m){ double base = 1; int flag = (m < 0) ? -1 : 1; int n = (m < 0) ? -m : m; while(n > 0){ base = base * a; n --; } if…
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如: 数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为. 解题思路:就是变形的二分查找,但是要考虑特殊情况,例如{1,0,1,1,1},此时只能采取顺序查找. #include<iostream> using namespace std; // int findMinNum1(int tempArray[], int count){…
书中方法:队列是先进先出的,栈是先进后出的,试想把一串数压入A栈,接着一个个出栈并压入B栈,便会完成"头在下"到"头在上"的转变.B栈内还有元素时,直接出栈表示出列,如果没有元素则将A栈内元素压入B栈内.这个没有测试,省略了异常抛出. public class QueueImplementionByTwoStack<Integer> { private Stack<Integer> in = new Stack<>(); priv…