每天一题
wjimin2008
这个作者很懒,什么都没留下…
展开
-
找出在数组中出现次数超过一半的那个数
也就是编程之美那道“寻找发帖水王的题目”, 开始看这道题目的时候,首先想到就是遍历,遍历数组所有的元素,比较元素出现的次数是否大于1/2.思路很简单,直接附上源代码。int FindMoreHalfNumber1(int* array,int n){ assert(array!=NULL||n<1); for(int i=0;i<n;++i) { int nTimes=0; f原创 2014-03-28 23:15:31 · 832 阅读 · 0 评论 -
两个很大的正数相乘
输入两个很大的正数(用C字符串去)转载 2014-04-22 13:50:38 · 581 阅读 · 0 评论 -
剑指offer的34题 丑数
我们把只包含因子2、3和5的数称为丑数(Ugly Number)。求从小到大的顺序的第1500个丑数。习惯上我们把1当做第一个丑数。这道题暴力的解法就是按照顺序检查每一个数是不是丑数。判断一个数是不是丑数的函数如下:bool IsUglyNumber(int num){ while(num%2==0) num/=2; w转载 2014-04-04 21:10:09 · 458 阅读 · 0 评论 -
将字符串转换成整数
将字符串转换成整数输入一个表示整数的字符串,把该字符串转换成整数并输入。例如输入字符串”345”,则输出整数345.#includeusing namespace std;enum Status{ kValid=0, kInvalid};int g_nStatus=kValid;int StrToInt(const char* str转载 2014-04-22 10:14:14 · 465 阅读 · 0 评论 -
堆栈的几个经典应用
用两个栈实现队列templateclass CQueue{public: CQueue(){} int size() { return s1.size()+s2.size(); } bool empty() { return size()==0; } void push(T val) { s1.push(val); } void pop() { a原创 2014-05-07 14:21:25 · 1205 阅读 · 0 评论 -
赋值运算符函数
赋值运算符函数的代码需要关注几点1) 是否把返回值的类型声明为该类型的引用,并在函数结束前返回实例自身的引用(即*this)。只有返回一个引用,才可以允许连续赋值。否则如果函数的返回值void,该赋值运算符将不能做连续赋值。2) 是否把传入的参数的类型声明为常量引用。参数声明为引用可以避免无谓的消耗,提高代码的效率。同时我们希望赋值运算符函数内不会改变传入的实例的状态。因此应该为传入的引用转载 2014-04-07 20:43:36 · 477 阅读 · 0 评论 -
向左旋转k个字符vs字符串中单词的逆转
#include#include#include #includevoid Reverse( char* pBegin,char* pEnd){ while(pBegin<pEnd) { char temp=*pBegin; *pBegin=*pEnd; *pEnd=temp; ++pBegin; --pEnd; }}//向左旋转k个字符char* Lef原创 2014-04-22 14:29:01 · 464 阅读 · 0 评论 -
一些位操作的技巧
计算二进制中1的个数int CountOf1(int num){ int count=0; while(num) { ++count; num&=(num-1); } return count;}原创 2014-04-23 14:51:17 · 514 阅读 · 0 评论