数值的整数次方 题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 思路一 考察指数的正负以及底数是否为零的几种情形: 将指数转换为二进制形式,比如13=1101: 例如求解10^13次方,可转换为(10^0001)(10^0100)(10^1000); 通过&1(按位与)和>>1(右移1)运算逐位读取1101,为1时将该位代表的乘数累乘到最终结果. 实现代码 function Power(base, exponen…
题目:输入一个整数数组.实现一个函数来调整该数组中数字的顺序.使得全部奇数位于数组的前半部分.全部偶数位于数组的后半部分. 1.基本实现: 假设不考虑时间复杂度,最简单的思路应该是从头扫描这个数组,每碰到一个偶数时,拿出这个数字,并把位于这个数字后面的全部的数字往前面挪动一位. 挪完之后在数组的末尾有一个空位.这时把该偶数放入这个空位. 因为没碰到一个偶数就须要移动O(n)个数字.因此总的时间复杂度是O(n2).可是,这样的方法不能让面试官惬意.只是假设我们在听到题目之后立就可以以说出这个解法,…
#include"iostream" using namespace std; int GetMinNumber(int *data,int len) { ,right=len-,mid; ) { mid=(left+right)/; if(data[mid]>=data[left]) left=mid; else if(data[mid]<data[right]) right=mid; } return data[right]; } void Test1() { cout…
题目:实现函数double Power(double base,int exponent),求base的exponent次方.不得使用库函数,同一时候不须要考虑大数问题 1.自以为非常easy的解法: 因为不须要考虑大数问题.这道题看起来非常easy.可能不少应聘者在看到题目30秒后就能写出例如以下的代码: public double powerWithExponent(double base,int exponent){ double result = 1.0; for(int i = 1;i…
题目描述: 实现函数double Power(double base, int exponent),求base的exponent次方,不得使用库函数,同时不需要考虑大数问题 思路:本题的重点考察内容是代码的完整性,要综合考虑输入的合法性,边界值等等,同时也可以进行优化 实现一: public double Power(double base, int exponent){ double result = 1.0; for(int i = 0; i < exponent; i++){ result…
问题描述: 输入一个整数n,求1到n这n个整数的十进制表示中1出现的次数.例如输入12,从1到12这些整数中包含1的数字有1,10,11,12,1一共出现了5次. 思路:(不考虑时间效率的解法,肯定不是面试官期望的) 直观想法:累加1到n中每个整数中1出现的次数. 每个整数中1出现的次数可以由除以10和模10来计算得到. 代码如下: boolean invalidInput = false; //不考虑时间效率的解法 public int NumberOf1Between1AndN_Soluti…
实现函数 double Power(double base, int exponent),即乘方运算. 考虑问题 exponet < 0 , 可以转化为 1.0 / Power(base, -1 *exponent)——负数与正数同时处理 exponet < 0,并且base=0时,此时应该报错,因为此时0作为除数 Power(0, 0) = 1 Power(*, 0) = 1 思路一:常规思路 #include <iostream> using namespace std; bo…
本题使用归并排序的思想,结合归并排序,写出的算法解. //数组中的逆序对 public static int InversePairs(int[] array){ if(array==null||array.length<=1) return 0; int[] copy = new int[array.length]; //复制原数组 copy = Arrays.copyOf(array, array.length); return mergeCount(array, copy, 0, arra…
#include"iostream" #include"random" using namespace std; /* void Swap(int &a,int &b) { int tmp; tmp=a; a=b; b=tmp; } */ //官方给的partition函数 int Partition1(int *data,int start,int end) { )); swap(data[index],data[end]); ; for(inde…
#include"iostream" using namespace std; bool IsInt(const char **str); bool IsUnsignInt(const char **str); bool IsNumeric(const char* str) { if(str==nullptr) return false; bool flagNumeric=IsInt(&str);//二阶指针才能保留更改 if(*str=='.') { str++; flagN…