自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 收藏
  • 关注

原创 VSCode Remte-SSH远程开发+免密登录

VSCode Remote-SSHVSCode:windows客户端远程linux服务器进行代码开发环境准备windows客户端:安装和启动ssh服务,VSCode编辑器及Remote-SSH插件Linux客户端:安装和启动sshd服务远程开发配置VSCode安装完Remote-SSH插件后配置SSH configuration file,如下:# Read more about SSH config files: https://linux.die.net/man/5/ssh_con

2020-10-25 17:28:34 708

原创 ssh保持连接状态

ssh保持连接状态设置TMOUT环境变量: export TMOUT=300 表示300s后终端无响应后超时自动退出登录服务器保持连接:修改服务器上的/etc/ssh/sshd_config文件,然后重启sshd服务# /etc/ssh/sshd_configClientAliveInterval 60 # 服务器每隔60s发送一次请求给客户端,然后客户端回应,从而保持连接ClientAliveCountMax 3 # 发出请求后,客户端没有响应得次数达到3,就自动断开连接,正常情况下,

2020-10-04 17:38:15 1618

转载 Golang-pprof

Go性能调优在计算机性能调试领域里,profiling 是指对应用程序的画像,画像就是应用程序使用 CPU 和内存的情况。 Go语言是一个对性能特别看重的语言,因此语言中自带了 profiling 的库,这篇文章就要讲解怎么在 golang 中做 profiling。Go性能优化Go语言项目中的性能优化主要有以下几个方面:CPU profile:报告程序的 CPU 使用情况,按照一...

2020-03-11 10:04:43 901

原创 C++ getline(cin,str), getchar(), cin ,cin.ignore() 字符串和字符读入方式的区别

1 cin读入数字、字符、字符串等,读到空格符、制表符、换行符停止读入。2getline(istream &is , string &str , char delim)读入带空格、制表符等字符的字符串用getline,其原型为如下:istream& getline ( istream &is , string &str , char de...

2019-11-21 19:45:45 562

原创 2019汇顶科技校招笔试——池塘个数/岛屿个数

池塘个数/岛屿个数#include<iostream>#include<vector>#include<queue>#include<algorithm>using namespace std;bool isCheck(int i, int j, int M, int N){ if (i >= 0 &&amp...

2018-09-25 09:12:22 938

原创 2019深信服校招——木板接水

2019深信服校招——木板接水题目描述       空地上竖立着n个从左到右排列的木板,它们可以把水挡住,但溢出最边上木板的水将会流到空地上。已知木板间距都是单位1,现给定每个木板的高度,请求出总共能接住的水量?说明一点,这里只考虑间距(宽度)和高度,不考虑第三个维度,因此水量是平方单位。         示例1,木板高度分别是2,1,3,那么我们可以接住2*2=4平方单位的水,如下图...

2018-09-24 12:08:14 2262

原创 strcpy函数实现(考虑内存折叠)

char *my_strcpy(char *dst, const char *src, size_t cnt){ if (nullptr == dst || nullptr == src || cnt == 0) return nullptr; char *temp1 = dst; const char *temp2 = src; if (dst <= src || src ...

2018-09-23 23:10:51 272

原创 LeetCode——区间合并

区间合并给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视...

2018-09-23 22:25:15 548

原创 马走日——最小步数

马走日——最小步数题目描述       一匹马在一个8*8的棋盘上走着,它的每一步恰好走成一个日字,也就是在x、y两个方向上,如果在一个方向走一步,另一个方向就走两步。假设棋盘的下标左下角是(1,1),右上角是(8,8)。给你马的最初位置p1(a1,b1),最终位置p2(a2,b2),请你编程求出马从最初位置到最终位置所走的最少步数。#include<iostream&g...

2018-09-23 22:03:35 3077

原创 拼凑钱币-动态规划

拼凑钱币       给你六种面额 1、5、10、20、50、100 元的纸币,假设每种币值的数量都足够多,编写程序求组成N元(N为0~10000的非负整数)的不同组合的个数。       coins = {1, 5, 10, 20, 50, 100};       假设dp[i][j]表示前i种纸币构成值为j的所有组合总数,则对于第i种纸币来说,有三种种情况:(1) 当 coin...

2018-09-05 10:39:22 1688 1

原创 动态规划-01背包

动态规划01背包题目描述       现有编号分别为1 2 3 4 5的五件物品,它们的重量分别是2 2 6 5 4,价值分别是6 3 5 6 4,现在给你个承重为10的背包,如何让背包里装入的物品具有最大的价值总和?物品重量w[] = {2, 2, 6, 5, 4}; 物品价值v[] = {6, 3, 5, 6, 4}; 背包容量为c;假设opt[i][j]表示前i件物品放入...

2018-09-04 18:26:16 224

原创 C++ 向vector中读入不定长度的一组数据

向vector中读入不定长度的一组数据(1) 使用getchar()函数#include<iostream>#include<vector>using namespace std;int main(){ vector<int> ivec; int num; do { cin >> num; ivec.push_b...

2018-08-30 17:21:14 3187

原创 单链表的冒泡排序

单链表的冒泡排序1 交换数据域        (1) 带头结点的单链表的冒泡排序(交换数据域)void ListBubbleSort(Node *headNode, int size)// headNode:头节点;size:链表长度{ if (nullptr == headNode || size <= 0) return; for (int i = 0; i &...

2018-07-30 20:07:56 333

原创 单链表的创建、添加、删除+判断是否有环、环的长度、环入口

单链表       单链表是数据节点是单向排列。包括两个域:数据域和指针域。单链表的节点数据结构如下:// 单链表节点数据结构class listNode{public: int value; // 数据域 listNode *next; // 指针域};        通常用“头指针”来标识一个单链表,头指针是指向单链表第一个节点的指针,如图1所示表...

2018-07-28 23:10:01 828 1

原创 2019拼多多提前批笔试 —— 票选球王

2019拼多多提前批笔试 —— 票选球王题目描述:       M 个投票者给 N 个球星评等级,等级由英文字母表示,'a'级最高,'z'级最低,共26个级别。当 [球星X的评级比Y高] 的票数高于 [球星Y的评级比X高] 的票数时,称候选球星X强于候选球星Y。若有一个候选球星强于其他所有球星,则称为球王。根据这个规则至多有一个球王,否则没有球王。请你判断哪位换选球星是球王。输入描述:...

2018-07-22 22:54:59 661 2

原创 智能指针的原理及实现

智能指针1 智能指针的作用      智能指针是一个类,用来存储指向动态分配对象的指针,负责自动释放动态分配的对象,防止堆内存泄漏。动态分配的资源,交给一个类对象去管理,当类对象声明周期结束时,自动调用析构函数释放资源2 智能指针的种类        shared_ptr、unique_ptr、weak_ptr、auto_ptr (1) shared_ptr        ...

2018-07-22 17:28:20 22785 6

原创 C++ 动态分配二维数组

C++ 动态分配二维数组(1) 使用new分配二维数组#include<iostream>using namespace std;int main(){ // new动态分配二维数组 int row_num, col_num; // row_num:行数;col_num:列数 cin >> row_num >> col_num;...

2018-07-21 10:56:13 4644

原创 2019CVTE提前批笔试 —— 源串修改为目标串共操作的次数

2019CVTE提前批笔试 —— 源串修改为目标串共操作的次数 (2013Google笔试题)给定一个源串和目标串,能够对源串进行如下操作:       (1) 在给定位置上插入一个字符;       (2) 替换任意字符;       (3) 删除任意字符。写一个程序,返回最小操作次数,使得对源串进行这些操作后等于目标串。示例:输入:“kitten” (源字符串src),“s...

2018-07-21 10:31:54 1307

原创 2019CVTE提前批笔试题 —— 从第一个字符串中删除第二个字符串中没有的元素

2019CVTE笔试题 —— 从第一个字符串中删除第二个字符串中没有的元素样例:输入:"Welcome CVTE"      "KEem"输出:"emeE"代码如下:#include<iostream>using namespace std;char *deleteChar(char *str1, char *str2){ if (nullptr ==...

2018-07-20 21:10:07 395

原创 归并排序

归并排序归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。基本思路:先递归的把数组划分为两个子数组,一直递归到数组中只有一个元素,然后再调用函数把两个子数组排好序,因为该函数在递归...

2018-07-17 16:12:18 145

原创 C++运行时类型识别RTTI和显式转换+如何根据基类指针判断指针指向的子类?

运行时类型识别RTTI和显式转换C++用于类型转换的4个操作符:reinterpret_cast,const_cast,static_cast,dynamic_cast。转换形式:cast_name<type>(expression)(1) reinterpret_cast:本质上依赖于机器,非常危险,避免使用。(2) const_cast:改变表达式的常量属性(添加或...

2018-07-17 11:38:56 810

原创 2019深信服笔试 —— 猎人抓兔子

2019深信服笔试 —— 猎人抓兔子题目描述:       假设兔子有n个排成一排的洞,编号为1和n。兔子每天晚上跳到相邻的一个洞里住,而猎人每天白天检查其中的一个洞。猎人告诉你每天检查的洞的编号,希望你分析一下是否一定能抓到兔子。输入描述:       首先输入n和k(n,k<1000),分别表示洞的个数和猎人要检查的天数;接下来输入k个整数,表示猎人每天检查的洞的编号。...

2018-07-16 15:45:48 5556 9

转载 C++继承与虚函数

 本篇文章针对面试过程中继承以及虚函数方面的知识做一总结,查缺补漏,希望对大家有帮助。单继承下的虚函数表//单继承下虚函数表:是如何组织的class A{public: virtual void func(){ cout << "A::func" << endl; } virtual void funcA(){ cout << "A::funcA" <...

2018-07-15 10:12:48 1145

原创 链表的倒数第k个节点

链表的倒数第k个节点:即链表从头开始的第(n-k+1)个节点;n为链表节点总数。(1) 遍历两次链表:第一次统计出链表的节点数,第二次从头节点开始往后走(n-k+1)步即是倒数第k个节点;(2) 遍历一次链表:使用两个指针p1和p2,开始均指向头节点;第一个指针p1从头节点开始往后走(k-1)步,第二个指针p2保持不动;从第k步起,两个指针p1和p2同时往后移动,由于两个指针的距离一直保持在(k-...

2018-07-12 15:27:16 136

原创 CVTE面试题 —— 给定一个数组,找出第k大的数及其下标

CVTE面试题 —— 给定一个数组,找出第k大的数及其下标快排思路解法:时间复杂度O(n)#include<iostream>#include<cassert> using namespace std;int partition(int *arr, int n, int low, int high){ assert(arr != nullptr &&a...

2018-07-09 21:45:53 737

原创 动态规划 —— 计算二次项系数

动态规划 —— 计算二次项系数C(n,k) = C(n-1,k-1) + C(n-1,k)    当n>k>0C(n,0) = C(n,n) = 1方法一:用二维数组填充矩阵,时间复杂度O(nk),空间复杂度O(nk)#include<iostream>#include<cassert>#include<algorithm>using name...

2018-07-09 10:40:26 4265

原创 2019大疆笔试题 —— 两个电路板(开关闭开和灯泡明暗)

2019年大疆笔试题 —— 两个电路板(开关闭开和灯泡明暗)题目描述:小A是一名DIY爱好者,经常制作一些有趣的东西。今天,小A突然想要来做这样一个东西。小A现在有两块同样大小为n×m,有n×m块大小为1×1小电路板拼成的矩形电路板,假设叫做电路板A和电路板B。电路板A上每个小电路板都是一个开关,电路板B上每个小电路板上都是一盏电灯泡。A与B之间存在如下关系:对于B上的某盏灯Bij的开关控制,有A...

2018-07-09 00:23:09 992 2

原创 数组指针与指针数组

数组指针与指针数组1 数组指针       数组指针是一个指向数组的指针,本质是一个指针,只不过它指向的是一个数组。一个指向有10个元素整型数组的指针定义为: int(*p)[10]; //(其中[]表示指向数组,10表示数组大小)。由于[]的优先级高于*,所以必须加上()。        二维数组的数组名是一个数组指针。 int(*p)[10]; int a[4][10];...

2018-07-07 20:15:00 128

原创 C++ 向vector中读入固定长度为n的一组数据

(1) 读入固定长度为n的一组数据#include<iostream>#include<vector>using namespace std;int main(){ // 读入长度为n的数据 int n; cin >> n; vector<int> ivec(n, 0); for (auto &m : ivec) /...

2018-07-06 15:01:38 1617

原创 今日头条笔试题——在n个元素的数组中,找到差值为k的数字对去重后的个数

今日头条笔试题1——在n个元素的数组中,找到差值为k的数字对去重后的个数开始想的方法一和方法二排序去重均漏掉了下列输入输出情况输入 :4 0           1 2 1 2正确输出:2方法一方法二输出:0 (去重了)正确解法:思路:用unordered_map<int,int> (<值val,次数cnt>)统计每个数出现的次数,每个值加上k后在unordered_map...

2018-07-06 14:40:12 1305

原创 求二叉树的深度/求二叉树的节点数

1 求二叉树的深度/高度思路:递归解法:1  如果二叉树为空,则树的深度为0;(递归返回条件)2  如果二叉树不为空,二叉树深度 =max{左子树节点个数+右子树节点的个数+1};代码如下:// 二叉树节点的数据结构class treeNode{public: int value; treeNode *left; treeNode *right;};// 求二叉树的深度/高度...

2018-07-05 15:51:56 5422

原创 topK问题——统计一篇很长的英文文章中频次出现最高的10个单词

 上篇讲述了topK问题的N个数中最大的前K个数,本篇则讲述统计一篇很长的英文文章中频次出现最高的10个单词。 例题2:统计一篇很长的英文文章中频次出现最高的10个单词。思路:  分治法 + hash + 小根堆(1) 定义一个关联容器hash_map<string,int>,用于统计英文文章中每个单词出现的次数;定义一个vector<hash_map<...

2018-07-05 13:52:35 4376

原创 topK问题——N个数中取最大的K个数

topK问题在海量数据中找出出现频率最高的前k个数,或者从海量数据中找出最大的前k个数,这类问题通常被称为topK问题。N个数中取最大的K个数,用小根堆;N个数中取最小的K个数,用大根堆。例题1:100万个数中,找到其中最大的100个数。(N个数中取最大的K个数)思路:(1) 定义两个数组,arr用于存储海量数据N,top用于存储小根堆K;(2) 将海量数据的前K个元素先填满top堆;(3) 调整...

2018-07-05 13:42:53 7176 1

原创 2019华为实习笔试题——重排字符串

1 字符串重排     题目:     给你一个原始字符串,根据该字符串内每个字符出现的次数,按照ASCII码递增顺序重新调整输出。     提示:     1、原始字符串中只会出现字母和数字。     2、注意区分大小写。     示例1:     输入为:eeefgghhh     输出为: efghegheh     示例2:     输入为:22233aaabcccdd     输出为: ...

2018-07-04 22:17:04 2826

原创 堆排序和优先级队列priority_queue

堆       堆是完全二叉树,便于用array来储存堆的所有节点;堆存储在下标为0开始计数的数组中,因此在堆中给定下标为i的结点时:        ① 如果i=0: 结点i是根节点,没有双亲节点;否则结点i的双亲结点为结点(i-1)/2。        ② 如果2*i+1>n-1: 则结点i无左孩子,否则结点i的左孩子为结点2*i+1。        ③ 如果2*i+2>...

2018-07-03 12:58:48 840

原创 判断两个结构体是否相等(运算符重载函数)+是否能用memcmp函数判断结构体相等

判断两个结构体是否相等:重载操作符"=="运算符重载函数(1) 类外定义的普通运算符重载函数:只能访问类中的公有数据成员,而不能访问类的私有数据成员;(2) 友元运算符重载函数:若友元运算符重载函数重载的是双目运算符,则参数表中有两个操作数;若重载的是单目运算符,则参数表中只有一个操作数。(3) 成员运算符重载函数:若成员运算符重载函数重载的是双目运算符,则参数表中只有一个操作数,...

2018-07-02 19:06:15 6716 4

原创 C++关键字static

staticstatic用来声明静态成员,包括静态数据成员和静态成员函数,它们被类的所有对象共享,实现一个类的不同对象之间的数据共享。eg:统计总数、平均数。静态数据成员存放在静态存储区,sizeof(类)的内存空间大小时不包括静态成员变量的大小;与普通的数据成员不同,无论创建多少个类的对象,都只有一个静态数据成员的拷贝,从而实现一个类的不同对象之间的数据共享。使用静态数据成员可以不必使用全局变量...

2018-06-24 20:30:17 110

原创 new和malloc的区别

malloc/free和new/delete(1) 属性:malloc和free是C/C++的库函数,new/delete是C++运算符;(2) 返回类型:new操作符内存分配成功时,返回的是对象类型的指针,类型严格与对象匹配,无须进行类型转换,故new是符合类型安全性的操作符;而malloc内存分配成功则是返回void * ,需要通过强制类型转换将void*指针转换成我们需要的类型。(3) 用法...

2018-06-23 22:23:12 119

原创 创建二叉树(递归+先序遍历)

创建二叉树(递归+先序遍历)(1) 自输入数据元素,形参为引用类型或二级指针class treeNode{public: int value; treeNode *left; treeNode *right;};// 递归+先序遍历创建二叉树void createBinaryTree(treeNode *&root) // 形参必须声明为引用类型或二级指针{ ...

2018-06-20 14:41:58 2042

原创 struct和class的空间大小计算

struct和class的空间大小计算总体上遵循两个原则:(1) 整体空间是占用空间最大的成员所占字节的整数倍;但在Linux+gcc环境下,若最大的成员类型所占字节超过4,如double是8,则整体空间是4的倍数即可。(2) 数据对齐原则——内存按结构体成员的先后顺序排列,当排到该成员变量时,其前面已摆好的空间大小必须是成员类型大小的整数倍,如果不够就对齐,依次向后类推。特殊情况:(1) 含静态...

2018-06-19 17:47:32 492

空空如也

空空如也

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

TA关注的人

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