自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (2)
  • 收藏
  • 关注

原创 Linux下expect的使用scp与ssh

expect实现scp与ssh

2022-08-30 15:28:41 480

原创 C语言赋值截断

下面程序的运行结果是 ( )#include <stdio.h>int main(){ unsigned char i; unsigned char ucMax = 1000; 这里变量赋值截断, printf("ucMax = %d\n",ucMax); 输出值为232 int iSum = 0; for( i = 0;i <= ucMax; i++) { iSum = iSum + i; } printf("Sum

2021-08-23 09:58:47 547

原创 最大回文子串

原文链接:https://blog.csdn.net/qq_31820761/article/details/90635480#include <iostream>#include <string>using namespace std;string LongestPalindrome(string s){ int len = s.size(); if (len==0 || len==1) { return s; } int start = 0;//记录回文子

2020-09-04 10:03:36 141

原创 数组中找出2个和为k的数&数组中找出n个和为k的数

思路:借鉴了剑指offer中第34题,使用递归的思想首先肯定是从下标为0开始,设置一个容器来保存路径,递归有两种方向选择该点加入队列以及不选择该点加入队列,最后再设置另一个数组来和之前的路径进行比较相同则不输出#include <iostream>#include <vector>using namespace std;//1、案例数组 2、所求和 3、加入路径的下标 4、路径数组 5、判断是否重复的数组void FindPath(vector<int>&

2020-08-27 11:18:33 833

原创 C/C++动态分配二维数组空间的方法

使用new分配内存int m,n; int num = 0; cin >> m >> n; int **p = new int *[m]; for (int i=0;i < m;i ++) { p[i] = new int[n]; memset(p[i],0,sizeof(int)*n); } 。。。 for (int i=0;i < m;i ++) { free(p[i]); }使用malloc分配内存int m,n; int

2020-08-26 22:09:35 461

原创 二叉树的深度广度优先遍历以及前中后序遍历

#include <iostream>#include <stack>#include <queue>using namespace std;#define N 10typedef struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight;};//广度优先遍历void BreadthFirstSearch(BinaryTreeNod

2020-08-22 17:08:44 141

原创 2020年8月19日华为笔试

今天做了华为机考题,第一题给定一个二维数组,M行N列顺时针从1开始报数,选出个位数为7,十位数为奇数的数,并按报数顺序输出出来题目大概就是这样,这个题目和剑指offer的29题:顺时针打印矩阵非常相似以下代码把给的例子输入进去结果是正确的,但是给定的输出格式不对,导致0%,好气#include <iostream>using namespace std;void selectpeople(int M,int N);void GoCircle(int **numbers,int m

2020-08-19 21:28:31 706 1

转载 2*1矩形覆盖问题

问题描述:我们可以用21的小矩形横着或竖着去覆盖更大的矩形。请问8个21的小矩形无重叠地覆盖一个28的大矩形,总共有多少种方法?解决方法:我们先把28的覆盖方法记为f(8)。用第一个21的小矩形去覆盖大矩形的最左边时有两种选择:竖着放或者横着放。当竖着放的时候,右边还剩27的区域,这种情形下的的覆盖方法记为f(7)。接下来考虑横放的情况。当21的小矩形横着放在左上角的时候,左下角必须横放着一个21的小矩形,而在右边还剩下2*6的区域,这种情况下的覆盖方法记为f(6),因此f(8) = f(7)+f(6)

2020-08-02 21:37:12 505

原创 排序算法总览

func.h#include <iostream>using namespace std;#include <time.h>#define N 100#define SWAP(a,b){int tmp;tmp = a;a = b;b = tmp;}void arr_print(int *,int);void arr_bubble(int *,int);//冒泡排序void arr_select(int *,int);//选择排序void arr_insert(int

2020-07-21 20:53:28 135

原创 杨辉三角

#include <iostream>using namespace std;int main(){ int i,j; int n; cin >> n; int a[34][34] = {1}; for (i = 1;i < n;i ++) { a[i][0] = 1; a[i][i] = 1; for (j = 1;j < i;j++) { a[i][j] = a[i-1][j-1] + a[i-1][j]; } } f

2020-07-04 21:22:52 75

原创 进制之间的转换

这里强调一下数据变量的范围(32位系统):short int :2字节int :4字节long int : 4字节long long : 8字节char : 1字节float :4字节,保留小数位7位double :8字节 保留小数位16位十进制转十六进制十进制转其他进制好像方法都差不多,这里以16进制为例方法:使用这个数一方面取余数,另一方面让这个数等于这个数除以16;#include <iostream>#include <s

2020-07-04 21:06:48 100

原创 关键ASCII码值记录

A~Z 对应 65~90a~z 对应 97~1230~9 对应 48~57

2020-07-04 19:21:39 191

原创 二进制中1的个数

题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1,因此,如果输入9,则该函数输出2.方法1:在该方法中,循环的次数等于整数中二进制的位数int NumberOf1(int n){ int count = 0; int flag = 1; while(flag) { //让n的二进制中的每一位和1相与,结果为1,就证明该位为1 if(n & flag) { count++; } flag = flag

2020-06-22 22:33:35 73

原创 前++和后++

2020年6月22日又被“++”运算给恶心到了,在这里来个了断情况一:在独立运算过程中例如:{ ... i++;//或者i-- ++i; 前置++和后置++没有区别都可以使用}情况二:在牵扯到赋值情况例如:{ (b=i++;)等价于{b=i;i=i+1;} (b=++i;)等价于{i=i+1;b=i;}}...

2020-06-22 22:19:51 153

原创 剪绳子(动态规划、贪婪算法)

题目描述给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],…,k[m]。请问k[0]xk[1]x…xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。动态规划:求一个问题的最优解(通常是求最大值或者最小值),而且该问题能够分解成若干个子问题,并且子问题之间还有重叠的更小的子问题,就可以考虑用动态规划来解决这个问题。应用动态规划之前要分析能否把大

2020-06-19 22:20:26 252

原创 回溯法——马踏棋盘

马踏棋盘算法(骑士周游问题)定义:将马随机放在国际象棋的8×8棋盘Board[0~7][0~7]的某个方格中,马按走棋规则进行移动。要求每个方格只进入一次,走遍棋盘上全部64个方格。算法:如图:这里的算法和矩阵中的路径一题非常相似,都是使用回溯法。#include <iostream>using namespace std;#include <time.h>#define N 64int pathlength[N];bool hasPath(int *chess,i

2020-06-19 20:05:28 392

原创 C primer plus 第12章 存储类别、链接和内存管理(全局变量、静态变量局部变量和常量)

存储类别:对象:从硬件方面来看,被储存的每个值都占用一定的物理内存,C语言把这样的一块内存称为对象。指定对象的表达式被称为左值。作用域:1.块作用域 块是用一对花括号括起来的代码区域。定义在块中的变量具有块作用域,块作用域的可见范围是从定义处到包含该定义的块的末尾。函数的形参也具有块作用域。2.函数作用域仅用于goto语句的标签。意味着即使一个标签首次出现在函数的内层块中,它的作用域也延伸至整个函数。如果在两个块中使用相同的标签会产生混乱,标签的函数作用域防止了这样的事情发生。3.函数原

2020-06-19 16:34:00 170

原创 机器人的运动范围

题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?class Solution {public: int movingCount(int threshold, int rows, int cols

2020-06-18 21:02:01 74

原创 矩阵中的路径

请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如a b t gc f c sj d e h矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格子之后,路径不能再次进入该格子。思路:这是一个可以使用回溯法的典型例题。首先,在矩阵中任选一个格

2020-06-17 09:57:54 188

原创 旋转数组的最小数字

题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路:旋转数组实际可以看作是两个顺序的数组,比如上面的{3,4,5}和{1,2},在这种情况下,找出最小值实际上就是找出第二个数组的第一个数字这里使用的方法是二分查找,找两个“指针”,a,b分别指向整个数组的第一个数字和

2020-06-16 11:30:23 80

原创 用两个栈实现队列

题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。栈的结构特点就是后进先出,队列的特点是先进先出就是用两个后进先出的栈来实现一个先进先出的功能这里是使用两个栈stack1和stack2 来进行实现:首先将元素通过压栈放进stack1中,但是我们要实现的是将第一个放进去的元素进行输出,也就是这里要实现的删除,然后通过一个个的出栈将元素再次放到stack2中,这样的话第一个元素即原来stack1的栈底元素,就到了stack2栈的顶部,然后再将它删除就完成了;

2020-06-08 22:23:19 116

原创 数组中重复的数字

题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。方法一:类似选择排序的方法,将每一个数和其它的数进行比较,得到重复的数字时间复杂度为O(n^2)bool duplicate(int numbers[], int length, int* duplication) { if(n

2020-06-06 16:56:02 93

原创 二叉树的下一个节点

题目:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。一棵有九个节点的二叉树,树中从父节点指向子节点的指针用实线表示,从子节点指向父节点的指针用虚线表示对于题目中的中序遍历,这里共分为三种情况:一 如果一个节点有右子树,那么它的下一个节点就是它的右子树中的最左子节点。二 如果一个节点没有右子树,分两种情况1.节点是它父节点的左子节点,那么它的下一个节点就是它的父节点。2.如果一个节点是它父节点的右子节点

2020-06-04 22:31:09 212

转载 重建二叉树

题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。这里使用的思想是递归思想:在二叉树的前序遍历序列中,第一个数字总是数的根节点的值。但在中序遍历序列中,根节点的值在序列的中间,左子树的节点的值位于根节点的值的左边,而右子树的节点的值位于根节点的右边,因此需要遍历中序遍历找到根节点的值。struct Binar

2020-06-03 22:22:12 89

原创 递归算法

1 阶乘问题:n!#include<stdio.h>#include<stdlib.h>int f(int n){ if(1==n) { return 1; } return n*f(n-1);}int main(){ int n; while(scanf("%d",&n)!=EOF) { printf("%d--%d\n",n,f(n)); } system("pause"); return 0;}台阶问题:一个人上台阶,台阶

2020-06-03 09:56:14 126

原创 斐波那契数列

题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。n<=39这里分为两个办法,一个是利用递归方法,因为F(n)=F(n-1)+F(n-2);好处在于代码简单便捷,但是问题在于递归这个方法会频繁的调用栈,不断地压栈和出栈;用递归的方法计算的时间复杂度是以 n 的指数的方式递增的int Fibonacci(int n) { int fib0=0; int fib1=1; int fib; if(n==0 || n=

2020-06-02 09:26:03 149

原创 二维数组中的查找

题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。从右上开始比较,如果这个数大于所要查找数,则列往左移动一格,如果这个数小于所要查找数,则行往下移动一行。bool Find(int target, vector<vector<int> > array) { int rows=array.size();//行数,这里是容器函数

2020-06-02 09:05:15 116

原创 替换空格

题目如下:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。主要难点在于:1、每个字符串后面都会有一个‘\0’结束符;2、在将字符串中的空格字符’ '转换成%20之后,字符串中的字符数会增加,并且如果不对空格后面的字符串进行处理,会将后面字符给覆盖掉。方法1:对原数组进行操作,将空格后面的字符进行移动,顺序:从前往后void replaceSpace(char *str,int lengt

2020-06-01 22:41:28 94

原创 双向循环链表的增删改插(第一次写博客),欢迎指正

双向循环链表增删改查菜单func.h#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct menu{ int num; int results; struct menu *pbef; struct menu *pnext;}Menu_t,*pMenu_t;...

2019-04-23 22:22:47 250

2.1进程概念.ppt

2.1进程概念.ppt

2022-01-17

Wireshark-win64-3.4.7.exe

Wireshark-win64-3.4.7.exe

2021-07-27

空空如也

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

TA关注的人

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