C++
文章平均质量分 79
Qiang__zi
...
展开
-
换钱的方法数
给定数组arr,arr中所有的值都为整数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,在给定一个整数aim代表要找的钱数,求换钱的方法有多少种。方法一:利用递归,时间复杂度O(aim^N)arr=[10,b,c...], aim=100,分析过程如下:1.用0张10元的货币,让[b,c......]组成剩下的100,最终方法数记为res1.2.用1张10原创 2017-07-31 16:07:57 · 314 阅读 · 0 评论 -
动态规划解决字符串交错组成问题
给定str1,str2,aim,若aim是仅包含str1,str2中的字符。若aim中属于str1的字符仍然保持在str1中原来的顺序,属于str2的字符仍然保持在str2中原来的顺序,则称aim是str1和str2的交错组成。思路:构造一个(M+1)*(N+1)的矩阵dp:1. dp[0][0]=true.aim为空时可以由str1和str2的空字符串组成2.dp[i][0]表示原创 2017-08-01 23:57:22 · 1657 阅读 · 0 评论 -
N皇后问题
N皇后问题是指在N*N的棋盘上N个皇后,要求任何两个皇后不同行、不同列,也不在同一条斜线上。给定一个整数n,要求皇后的摆法有多少种。方法一:递归暴力解决如果在(i,j)位置(第i行第j列)放置了一个皇后,接下来在哪些位置不能放置皇后呢?1.整个第i行的位置都不能放置2.整个第j列的位置都不能放置3.如果位置(a,b)满足|a-i|==|b-j|,说明(a,b)与(i,j)处在同原创 2017-08-02 16:09:03 · 361 阅读 · 0 评论 -
字符串中的空格替换
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解题思路:从左向右插入,移动次数较多,计算量大,不建议该方法。 推荐从右向左插入。 首先计算出整个字符串中的空格数量spacecount,则新字符串长度 newlength = oldlength+2*spacecount;*原创 2017-07-26 09:33:36 · 207 阅读 · 0 评论 -
顺时针打印矩阵、矩阵顺时针转动90、之字形打印矩阵
给定一个整形矩阵matrix,请按照顺时针的方向打印矩阵1 2 3 45 6 7 89 10 11 1213 14 15 16输出结果为:1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10额外空间复杂度:O(1)#include #includevoid PrintMatrix(int mat原创 2017-08-03 10:07:33 · 423 阅读 · 0 评论 -
C++类静态成员与类静态成员函数详解
静态成员不可在类体内进行赋值,因为它是被所有该类的对象所共享的。你在一个对象里给它赋值,其他对象里的该成员也会发生变化。为了避免混乱,所以不可在类体内进行赋值当将类的某个数据成员声明为static时,该静态数据成员只能被定义一次,而且要被同类的所有对象共享。各个对象都拥有类中每一个普通数据成员的副本,但静态数据成员只有一个实例存在,与定义了多少类对象无关。静态方法就是与该类相关的,是类的一种行原创 2017-05-13 22:31:55 · 375 阅读 · 0 评论 -
Find Duplicate File in System
该题是leetcode中有关string操作的一道题目:用到的了string中的substr(),find_first_of()等操作Given a list of directory info including directory path, and all the files with contents in this directory, you need to f原创 2017-09-03 22:31:38 · 275 阅读 · 0 评论 -
C++输入输出
1、cin1、cin.get()2、cin.getline()3、getline()4、gets()5、getchar()1、cin>>用法1:最基本,也是最常用的用法,输入一个数字:#include using namespace std;main (){int a,b;cin>>a>>b;cout}输入:2[回车]转载 2017-11-07 21:03:38 · 265 阅读 · 0 评论 -
win10操作系统--VS2015 进行远程调试
1.首先找到VS2015安装位置2.Visual Studio 2015->Visual Studio Tools->Remote Debugger Folder把所用的文件夹(*86或者*64)拷贝到程序运行时的PC(远程调试PC需要关闭防火墙)3.找到msvsmon.exe以管理员身份运行4.在弹出界面选择工具->选项,设置为无身份验证,允许任何用...原创 2019-04-11 21:17:01 · 1594 阅读 · 0 评论 -
VC 控制台输出流&错误流重定向至文件
#include<stdio.h>int main(ing argc, int *argv[]){ fropen("out_put.txt", "w", stdout); //重定向输出流 fropen("err_put.txt", "w", stderr); //重定向错误流 printf("this text write to a file...原创 2019-05-20 16:30:20 · 378 阅读 · 0 评论 -
矩阵的最小路径和
给定一个矩阵m,从左上角开始每次只能向右或向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,返回所有的路径中最小的路径和。若给定的m如下:1 4 9 89 5 8 1214 5 11 1222 13 15 12路径1,4,5,5,11,12,12是所有路径和最小的,所以返回结果50.经典动态规划方法。假设矩阵m的大小为M*N,行数为M,列原创 2017-07-29 22:59:39 · 734 阅读 · 0 评论 -
斐波那契数列数列的三种时间复杂度的实现方法
给定整数N,返回斐波那契数列的第N项斐波那契数列为1,1,2,3,5,8,......也就是除第1项和第2项为1以外,对于第N项,有F(N)=F(N-1)+F(N-2),于是能够很轻松的写出暴力递归的代码。其时间复杂度为O(2^N).int Fibonacci1(int n){ if(n<1)return 0; if(n==1 || n==2) return 1; retu原创 2017-07-29 16:06:56 · 12925 阅读 · 1 评论 -
KMP算法
KMP算法的引入 KMP算法就能很好地解决冗余问题。 其主要思想为: 在失配后,并不简单地从目标串下一个字符开始新一轮的检测,而是依据在检测之前得到的有用信息(稍后详述),直接跳过不必要的检测,从而达到一个较高的检测效率。 如 ab c d e a b c d e a b c d f原创 2017-02-19 14:58:45 · 241 阅读 · 0 评论 -
C++ STL容器解读
1.vector向量容器vector向量容器不但能像数组一样对元素进行随机访问,还能在尾部插入元素,是一种简单、高效的容器,完全可以代替数组。vector具有内存自动管理的功能,对于元素的插入和删除,可动态调整所占的内存空间。vector容器的下标是从 0开始计数的,也就是说,如果vector容器的大小是 n,那么,元素的下标是0~n-1。对于vector容器的容量定义,可原创 2016-10-03 23:43:04 · 451 阅读 · 0 评论 -
邻接表表示的“无向图”
/***c++:邻接表表示的无向图*@author shq*@date 2016/12/10*/#include"stdafx.h"#include#include#include#define MAX 100int isChar(char ch);using namespace std;class adjTable{private: class ENode {原创 2016-12-10 15:21:26 · 2896 阅读 · 0 评论 -
图的表示
1 邻接矩阵 ,对于N个点的图,需要N×N的矩阵表示点与点之间是否有边的存在。这种表示法的缺点是浪费空间,尤其是对于N×N的矩阵是稀疏矩阵,即边的数目远远小于N×N的时候,浪费了巨大的存储空间2 邻接链表,对于任何一个node A,外挂一个邻接链表,如果存在 A->X这样的边,就将X链入链表。 这种表示方法的优点是节省空间,缺点是所有链表都存在的缺点,地址空原创 2016-12-10 15:23:56 · 311 阅读 · 0 评论 -
c++ 求最大公约数&&最小公倍数
1、求两个数的最大公约数#include "stdafx.h"#include#includeusing namespace std;int _tmain(int argc, _TCHAR* argv[]){ int num1,num2; int max,min; int temp; cout << "input two numbers: "; cin >> num1原创 2016-12-15 23:36:51 · 3642 阅读 · 0 评论 -
字符串输入&操作
字符串:用引号括起来的字符串隐式地包括结尾的空字符(\0),如char ch[]=”BUBBLE”;C++输入工具通过键盘输入,将字符串读入到char数组时,自动加上结尾的空字符。Strlen()返回的是存储在数组中的字符串的长度(只计算可见的字符,不把空字符计算在内),sizeof()运算符指出整个数组的长度。字符串的输入:cin使用空白(空格,制表符,换行符)来确定原创 2016-12-22 23:05:28 · 790 阅读 · 0 评论 -
new生成二维数组
先申请一个row个元素的一维指针空间,然后对每个一维指针上,申请line个元素的对象空间。这样就可以申请一个row行line列的二维数组空间了。//用new创建一个二维数组 一: int (*p)[line] = new int[row][line]; 删除二维数组: delete []p;二: int **p p = new in原创 2017-01-06 08:59:05 · 17421 阅读 · 0 评论 -
C++ 文件操作
打开文件的方式:fopen: 函数原型:FILE * fopen(const char * path,const char * mode); 返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。 一般而言,打开文件后会做一些文件读取或写入的动作,若打开文件失败,接下来的读写动作也无法顺利进行,所以一般在fo原创 2017-01-08 00:08:24 · 393 阅读 · 0 评论 -
2017内推笔试编程(二)
1、混合颜料你就是一个画家!你现在想绘制一幅画,但是你现在没有足够颜色的颜料。为了让问题简单,我们用正整数表示不同颜色的颜料。你知道这幅画需要的n种颜色的颜料,你现在可以去商店购买一些颜料,但是商店不能保证能供应所有颜色的颜料,所以你需要自己混合一些颜料。混合两种不一样的颜色A和颜色B颜料可以产生(A XOR B)这种颜色的颜料(新产生的颜料也可以用作继续混合产生新的颜色,XOR表示异或操作)原创 2017-01-10 09:38:14 · 870 阅读 · 0 评论 -
B-tree的构造及相关操作
#include "bttool.h"int main(){ ElemType data; treeNode* root; treeNode* treenode; root = new treeNode; treenode = new treeNode; cin>>data; treenode = creatbtree(root,data);原创 2017-01-15 23:47:37 · 506 阅读 · 0 评论 -
2017网易秋招笔试题
1、回文如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列。例如:{1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列, {1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列。现在给出一个数字序列,允许使用一种转换操作:选择任意两个相邻的数,然后从序列移除这两个数,并用这两个数字的和插入原创 2017-01-10 09:29:20 · 2180 阅读 · 0 评论 -
OpenCV遍历图像(彩色图&灰度图)
1、使用at<Vec3b>(i, j) 和at<uchar>(i, j) cv::Mat img = imread("test.jpg"); int rows = img.rows; int cols = img.cols; for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j...原创 2019-06-17 11:51:56 · 3277 阅读 · 0 评论