自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ben

给时光以生命

  • 博客(118)
  • 资源 (1)
  • 收藏
  • 关注

原创 C语言字符串相关函数

#include <stdio.h>#include<string.h>#include<iostream>using namespace std;int main() { char str[64] = { 0 }; char str1[] = "hellow world"; char str2[] = "hellow c"; char *p; // sprintf_s sprintf_s(str, "%s\n", "ni hao ma?

2021-02-18 19:53:49 170

原创 MFC如何让messagebox消息框隔一定时间关闭

原理是在 messagebox语句之前设置一定时器开始计时,在定时器 OnTimer函数中写入关闭该定时器以及给消息框发送WM_CLOSE消息的语句。举例说明:1、主函数中messagebox相关行代码如下:PeriodTime=10000;CchessDlg* pDlg = (CchessDlg*)AfxGetMainWnd();pDlg->SetTimer(1, PeriodT...

2019-12-16 17:39:20 1500

原创 c++ 数组引用

一维数组合、二维数组引用的方式类似,直接看代码就好。#include<iostream>using namespace std;int main(){ //一维数组 int m[4] = { 1, 2, 3, 4 }; int(&a)[4](m); for (int i = 0; i<4; i++) { cout << m[i] &lt...

2019-12-07 09:55:35 1672

原创 fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突

原因是配置x64平台环境时复制了x86平台下的库目录路径将D:\opencv300\opencv\build\x86\vc12\lib改为D:\opencv300\opencv\build\x64\vc12\lib即可

2019-11-26 09:47:02 279

原创 指定日期确定当年第多少天?

/** *Copyright @ 2019 Zhang Peng. All Right Reserved. *Filename: *Author: Zhang Peng *Date: *Version: *Description:**/#include<iostream>using namespace std;int main(){ int year, mo...

2019-09-16 14:20:11 407

原创 图中度为0的节点之间最短距离

输入节点数目为n,存在n-1条路径,无向连通图。思路:运用弗洛伊德算法计算多源最短路径,找到度为0的节点,计算两两之间的最短路径,并输出其中的最小值。/** *Copyright @ 2019 Zhang Peng. All Right Reserved. *Filename: *Author: Zhang Peng *Date: *Version: *Description:...

2019-09-11 16:38:01 645

原创 剑指offer 58:翻转字符串

此题是按单词翻转字符串先将字符串全部翻转,再用空格确定每个单词的具体位置,将单词内部翻转回来。/** *Copyright @ 2019 Zhang Peng. All Right Reserved. *Filename: *Author: Zhang Peng *Date: *Version: *Description:**/#include<iostream>...

2019-09-08 16:00:11 159

原创 剑指offer 36:二叉搜索树与双向链表

二叉搜索树进行中序遍历即是符合要求的链表形式,最后只需要调整相应指针即可。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/void scan(TreeNod...

2019-09-04 20:22:58 121

原创 剑指offer 33:二叉树的后序遍历序列

可利用后序遍历的性质,由根结点的数值将原序列分为两部分,再递归判断左序列和右序列。class Solution {public: bool VerifySquenceOfBST(vector<int> sequence) { int len=sequence.size(); if(len==0) return fals...

2019-09-04 20:07:10 115

原创 剑指offer 32-2:分行从上到下打印二叉树

用两个queue来进行打印,一个队列表示当前正在打印的队列,另一个队列记录正在打印的队列中节点的子节点,若当前打印的队列为空,打印下一层。/***Copyright @ 2019 Zhang Peng. All Right Reserved.*Filename:*Author: Zhang Peng*Date:*Version:*Description:**/#include...

2019-09-04 15:56:09 105

原创 剑指offer 13:机器人的运动范围

此题可用广度优先搜索(BFS)来解决需要注意的是threshold有可能为负数struct point{ int x; int y; point(int a, int b) :x(a), y(b){};};class Solution {public: bool valid(int row, int col, int threshold) { int num = 0; ...

2019-09-03 22:52:47 104

原创 stl中remove和erase的区分

remove能够删除指定元素,并将剩余的元素放在最前面的位置,返回一个指向最后剩余元素下一位置的迭代器,此时容器大小等并没有改变,该迭代器后面的元素还是原来容器相应位置的元素。若要真正删除指定元素,则要结合erase函数来将返回的迭代器之后的元素全部删除。#include <iostream>#include <vector>#include <algorit...

2019-09-02 10:18:16 435

原创 编程练习20190901:数组排序

某公司中有N名员工,给定所有员工工资的清单,财务人员要按照特定的顺序排列员工的工资。他按照工资的频次降序排列,即给定清单中所有频次较高的工资将在频次较低的工资之前出现。如果相同数量的员工都有相同的工资,则将按照给定清单中该工资第一次出现的顺序排列。写一个算法来帮助财务人员排列员工工资的顺序。Testcase 1:Input:10,[20,40,26,25,40,20,40,20,40,25...

2019-09-01 20:14:41 5017

原创 c++ sort用法

该函数默认为由小到大排序,如果要改为由大到小排序,则需要修改第三个参数。#include<iostream>#include<vector>#include<algorithm>using namespace std;void show(vector<int> data){ for (int i = 0; i < data.si...

2019-09-01 15:32:29 151

原创 剑指offer 65:不用加减乘除做加法

用"异或"表示加法,“位与”计算进位。/** *Copyright @ 2019 Zhang Peng. All Right Reserved. *Filename: *Author: Zhang Peng *Date: *Version: *Description:**/#include<iostream>using namespace std;int ad...

2019-08-29 16:34:22 158

原创 剑指offer 62:圆圈中最后剩下的数字

建立与原数组相同的标记数组,每次删除一个元素后做一标记,最后将没有标记的元素输出。/** *Copyright @ 2019 Zhang Peng. All Right Reserved. *Filename: *Author: Zhang Peng *Date: *Version: *Description:**/#include<iostream>#inclu...

2019-08-29 15:48:38 214

原创 剑指offer 61:扑克牌中的顺子

此题中主要是需要检查除了大小王的连续情况,将其中差的位数予以记录,若总和不大于大小王的总数,则是顺子,否则不是。其中还需注意,如果有重复出现的牌,则必然不是顺子。class Solution {public: bool IsContinuous( vector<int> numbers ) { int kingNum=0; int len=n...

2019-08-29 11:11:45 109

原创 剑指offer 60:n个骰子的点数

此题是计算n个骰子扔在地上点数和出现的概率,可看作一个骰子扔了n次,计算所有可能结果出现的概率。如果是2个骰子,共有36种组合,出现和为5的情况为(1,4)(2,3)(3,2)(4,1),其概率为4/36=0.111111/** *Copyright @ 2019 Zhang Peng. All Right Reserved. *Filename: *Author: Zhang Pe...

2019-08-29 10:48:13 183

原创 剑指offer 59-1:滑动窗口的最大值

采用双向队列维护该滑动窗口,若下一个数值大于当前滑动窗口的最大值,则将双向队列清空并将新值加入;若不大于滑动窗口的最大值,则将尾部小于新值的元素全部出队列;若头部的最大值下标和当前遍历的下标之差大于k时,将头部元素出队列。/** *Copyright @ 2019 Zhang Peng. All Right Reserved. *Filename: *Author: Zhang Peng...

2019-08-28 15:55:43 172

原创 剑指offer 57-2:和为s的连续正数序列

/** *Copyright @ 2019 Zhang Peng. All Right Reserved. *Filename: *Author: Zhang Peng *Date: *Version: *Description:**/#include<iostream>#include<vector>using namespace std;vec...

2019-08-27 16:36:33 113

原创 剑指offer 56-2:数组中唯一只出现一次的数字

此题是求数组中唯一只出现一次的数字,其他数字均出现了三次/** *Copyright @ 2019 Zhang Peng. All Right Reserved. *Filename: *Author: Zhang Peng *Date: *Version: *Description:**/#include<iostream>#include<vector&...

2019-08-27 15:42:23 97

原创 剑指offer 55-2:平衡二叉树

此题是判断是否是二叉树递归检查左、右子树的深度之差是否在1以内,但是在编程时有多种方式,应采用由底向上的方式进行,避免重复进行计算。/***Copyright @ 2019 Zhang Peng. All Right Reserved.*Filename:*Author: Zhang Peng*Date:*Version:*Description:**/#include&lt...

2019-08-27 15:08:44 110

原创 剑指offer 53:在排序数组中查找数字

此题为求排序数组中指定数字出现过的次数思路一:利用二分查找,先找到排序数组中的某一个指定数字,然后向两边扩展查找思路二:利用二分查找,分别找到第一次出现该数字的下标以及最后一次出现该数字的下标,times=right-left+1代码如下:class Solution {public: int GetMinIndex(vector<int> & data,in...

2019-08-27 10:31:05 182

原创 剑指offer 37:序列化二叉树

可采用前序遍历序列化及反序列化二叉树/** *Copyright @ 2019 Zhang Peng. All Right Reserved. *Filename: *Author: Zhang Peng *Date: *Version: *Description:**/#include<iostream>#include<string>#inclu...

2019-08-26 21:26:25 103

原创 剑指offer 51:数组中的逆序对

可以用归并排序的思想,在合并两个字数组时计算下逆序对数目,并加在一起。class Solution {public: void Merge(vector<int> & data, long long & result, int start, int mid, int end) { int num = end - start + 1; int len1 =...

2019-08-26 20:25:02 121

原创 剑指offer 45 : 把数组排成最小的数

总体思路是将数组中的数字按照一定规则进行排序,最后将其组合成字符串输出。排序的规则可以有两种实现方式:按位循环比较,外层循环为长度较长的字符串,比较的下标取外循环下标对较短长度取余若mn>nm 则交换m、n 代码如下:class Solution {public: bool check2(int a,int b) { string aa=to_s...

2019-08-26 14:53:36 122

原创 深度优先遍历(DFS)

以下以二维平面上的图来做示例,在所示图上用深度优先遍历查找指定起始点和终止点的路径。图中1表示可以走,0表示障碍不可以走在深度优先遍历中需要注意的有以下几点:递归实现深度优先遍历,注意退出条件需记录已访问和待访问的位置查找路径需确保路径的连通性代码如下:/** *Copyright @ 2019 Zhang Peng. All Right Reserved. *Filenam...

2019-08-26 10:54:07 850

原创 二叉树创建与非递归遍历

其中中序非递归遍历较难理解,对其步骤做一解释:1、从根节点开始遍历左儿子直至nullptr,并将其指针加入栈中2、出栈向后退一步,保存当前栈顶指针所指向的二叉树值,并出栈3、将根节点设置为前一步栈顶指针所指向的节点的右儿子代码如下:/***Copyright @ 2019 Zhang Peng. All Right Reserved.*Filename:*Author: Zha...

2019-08-25 15:54:59 382

原创 笔试编程练习20190825

此题为限定能量和体积情况下,求反应堆中能够产生的最大能量。实质上是一个二维0-1背包问题,利用动态规划求解。/** *Copyright @ 2019 Zhang Peng. All Right Reserved. *Filename: *Author: Zhang Peng *Date: *Version: *Description:**/#include<iostr...

2019-08-25 11:42:35 178

原创 最大公共子串

最大公共子串求法与最大公共子序列类似,均可采用动态规划的思想if(str1[i]==str2[j]) dp[i][j]=dp[i-1][j-1]+1;else dp[i][j]=0;代码如下:/** *Copyright @ 2019 Zhang Peng. All Right Reserved. *Filename: *Author: Zhang Peng *Date: ...

2019-08-24 09:57:30 295

原创 二叉树创建与递归遍历

建立如下图所示二叉树,# 代表空节点。其前序遍历、中序遍历、后序遍历递归代码如下:/** *Copyright @ 2019 Zhang Peng. All Right Reserved. *Filename: *Author: Zhang Peng *Date: *Version: *Description:**/#include<iostream>#inc...

2019-08-23 21:23:52 198

原创 leetcode 1143. Longest Common Subsequence

此题为求最大公共子序列,需要注意的是公共子序列和公共子串概念不同ad 是 abcd 的公共子序列,而不是公共子串ab 是 abcd的公共子序列,且是公共子串主要运用动态规划的思想求解,需要注意的两点就是dp转移方程的确定及初始值class Solution {public: int longestCommonSubsequence(string text1, string tex...

2019-08-22 21:06:05 349

原创 矩阵清零

此题为将矩阵中0所在的行和列所有元素清零思路一:利用辅助空间记录所要清零的行和列思路二:寻找第一个为0的元素,将其行和列当做记录清零位置的辅助空间/** *Copyright @ 2019 Zhang Peng. All Right Reserved. *Filename: *Author: Zhang Peng *Date: *Version: *Description:**...

2019-08-22 19:09:05 708

原创 剑指offer43: 1-n整数中1出现的次数

找数字1出现的规律递归实现class Solution {public: int NumOf1(string str) { //以21345为例 if (str.size() == 0) return 0; int num1=0, num2=0, num3=0; string left = str.substr(1, str.size() - 1); ...

2019-08-21 11:34:19 124

原创 剑指offer 41 :数据流中的中位数

如果是奇数,中位数是最中间的那个数,否则是中间两个数的平均数。思路一:先对数据进行排序,再求中位数,可是如果是数据流,这样的方法必须每次扩充数组等,不可行。思路二:借鉴有序的思想,在前半段维护一个大顶堆,后半段维护一个小顶堆,并且始终保持大顶堆的最大值小于小顶堆的最小值;如果在两个堆数目和为奇数时插入小顶堆,偶数时插入大顶堆,那么在两个堆数目和为奇数时,中位数就是大顶堆的最大值,否则是大顶堆最...

2019-08-21 09:34:03 107

原创 剑指offer 40: 最小的k个数

可维护一个长度为k的最小数组成的multiset,其中的数字就是最小的k个数。如果需要去重的话采用set,set是集合,所有的数字只出现一次。class Solution {public: vector<int> GetLeastNumbers_Solution(vector<int> input, int k) { multiset<i...

2019-08-20 20:52:41 107

原创 剑指offer 39:数组中出现次数超过一半的数字

根据数组特点,遍历数组时保存两个数,一个是数组中的数字,一个是次数,如果下一个数字与该数字不同,次数减1。如果次数为0,保存新的数字。出现次数超过一半的数字一定是最后一次把次数设为1时的数字。在第一次遍历完成之后,需要进行第二次遍历,检验出现次数是不是超过了一半。class Solution {public: int MoreThanHalfNum_Solution(vector&lt...

2019-08-20 17:24:03 183

原创 堆排序

堆实质上可以看作是以完全二叉树的结构来维护的一维数组大顶堆:每个结点的值都大于或等于其左、右子结点的值小顶堆:每个结点的值都小于或等于其左、右子结点的值利用大顶堆实现由小到大排序代码如下:/** *Copyright @ 2019 Zhang Peng. All Right Reserved. *Filename: *Author: Zhang Peng *Date: *Vers...

2019-08-16 16:50:00 123

原创 leetcode 892. Surface Area of 3D Shapes

此题是求立体图形的表面积2019年8月16日的360笔试编程题第一题就是该题。思路:1、如果grid[i][j]大于前、后、左、右位置的值,表面积应该加上与他们各自的差,将超出边界的值按0对待2、如果grid[i][j]不等于0,表面积应该加上上、下表面的面积2class Solution {public: int surfaceArea(vector<vector<...

2019-08-16 09:29:55 80

原创 leetcode 5. Longest Palindromic Substring

此题是求最长回文子串思路一:设置头指针,从前往后遍历字符串,设置尾指针,若头尾之间存在回文串,继续下一个位置,否则尾指针向前退一步继续查找。在找到回文串的时候,都要和当前保存的回文串进行比较,始终保存最长的回文串标记。class Solution {public: bool valid(const string & s,int begin,int end) { ...

2019-08-15 15:11:01 87

视觉龙公司产品介绍

视觉龙公司产品介绍,需要的可以联系。 视觉龙公司产品介绍,需要的可以联系。

2018-10-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除