C++
lfSeanDragon
热爱生活,学习并快乐着!
展开
-
不用标点符号实现加减乘除运算
这个题是leetcode里面的一个经典面试题,整理了几种比较经典的实现方法。 1、加法 要实现加法操作可以分为两步: (1)不进位部分的加法用a^ b; (2)进位部分的加法用(a&b)<< 1; 递归实和非递归现方法实现如下: //加法 //(递归方法) int getAddNumber(int a, int b) { if (b == 0) re...原创 2019-11-01 00:45:55 · 421 阅读 · 0 评论 -
c++实现哈夫曼树编码
c++实现哈夫曼编码 哈夫曼编码原理原创 2017-07-31 16:50:16 · 5796 阅读 · 1 评论 -
c++实现工厂方法模式对八大排序的统一管理
c++实现工厂方法模式 八大排序 厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。 工厂方法模式:是简单工厂模式的衍生,解决了许多简单工厂模式原创 2017-07-31 17:14:01 · 599 阅读 · 2 评论 -
迷宫问题的分析与实现
【问题描述】 以一个 m*n的方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论 其中二维矩阵中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。相关博文 c++实现源码 /*迷宫问题*/ #include #include us原创 2017-08-06 12:21:43 · 1265 阅读 · 0 评论 -
java实现螺旋矩阵、C++实现螺旋矩阵(顺时针、逆时针)
螺旋矩阵是指一个呈螺旋状的矩阵,它的数字由第一行开始到右边不断变大,向下变大,向左变大,向上变大,如此循环。如下图所示: 此类题目经常出现在各大互联网公司的面试笔试这种,今天我用c++实现输入一个整N,就打印出N*N的螺旋矩阵,源码如下:#include <iostream> #includ...原创 2018-04-16 00:43:33 · 8148 阅读 · 4 评论 -
快手笔试题:收入一个数字,输出该数字对应的中文读法
题目:输入一个数字范围为[0,99999]中任意一个数字,输出该数字对应的中文读法,为了方便输出,使用字母替换相应的中文,万W千Q百B十S零L,使用数字替代中文数字。 注:11应该表示为一十一(1S1),而不是十一(S1);解题思路:本题用一个数组即可完美解决,思路也不难,具体 解题源码如下所示:解题源码:#include<iostream> using namespace st...原创 2018-05-11 12:59:22 · 4269 阅读 · 0 评论 -
腾讯面试题:模板实现一个栈,要求Push(入栈),Pop(出栈),Max(返回最大值的操作)的时间复杂度为O(1)
解题思路:要实现乱序入栈的数组每次pop()出栈都能得到当前栈中的最大值,就必须在push()入栈时进行维护操作,使的每次入栈的元素都能够找到合适的位置并push(),每次push()操作完成后栈中的元素都能够按从栈顶到栈底从大到小排列即可。这就需要写一个不同于常规操作的maxpush()函数,用两个栈s1、s2就可以实现此功能,maxpush()操作时,如果为空就直接push()元素给s1,当s...原创 2018-05-05 11:30:37 · 2845 阅读 · 0 评论