- 博客(65)
- 收藏
- 关注
原创 无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。来源:力扣(Le
2020-07-18 13:26:11
233
原创 牛牛找工作
牛牛找工作题目描述为了找到自己满意的工作,牛牛收集了每种工作的难度和报酬。牛牛选工作的标准是在难度不超过自身能力值的情况下,牛牛选择报酬最高的工作。在牛牛选定了自己的工作后,牛牛的小伙伴们来找牛牛帮忙选工作,牛牛依然使用自己的标准来帮助小伙伴们。牛牛的小伙伴太多了,于是他只好把这个任务交给了你。输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含两个正整数,分别表示工作的数量N(...
2020-04-08 01:59:30
230
原创 全排列问题
全排列问题给定一个一个序列,输出他的全排列比如{1,2,3}.全排列就是:1,2,31,3,22,1,32,3,13,1,23,2,1可以先看一个例子。给定一个序列输出下一个比它大的序列例如:arr{1,2,3,5,4,2}比它大的下一个排列就是{1,2,4,3,5,2}具体怎么做的?1.从arr.len-1位置到0开始找arr[i]>arr[i-1].找到之后...
2020-03-30 16:48:41
160
转载 【Linux】Linux的虚拟内存详解(MMU、页表结构)
转载:https://blog.csdn.net/qq_38410730/article/details/81036768?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task ...
2020-03-30 14:37:18
291
转载 c++11 之emplace_back 与 push_back的区别
转载:https://blog.csdn.net/p942005405/article/details/84764104c++开发中我们会经常用到插入操作对stl的各种容器进行操作,比如vector,map,set等。在引入右值引用,转移构造函数,转移复制运算符之前,通常使用push_back()向容器中加入一个右值元素(临时对象)时,首先会调用构造函数构造这个临时对象,然后需要调用拷贝构造函数...
2020-03-25 10:06:55
220
原创 Linux中检测程序是否内存泄漏
Windows底下的VS可以去调用_CrtDumpMemoryLeaks(),查看内存是否泄漏。那么Linux底下如何检测程序中是否内存泄漏呢?Linux中有一款工具:valgrind,可以用它来检测内存是否泄漏。如果没有安装可以先去安装:yum -y install valgrind安装完之后就可以使用啦先写一段简单的代码,可以看到没有释放内存。。。 1 #include<...
2020-03-12 23:20:59
963
转载 vector的push_back拷贝构造和空间占用分析
本文同步自:http://zohead.com/archives/vector-push-back-space-copy/这两天在实际程序中使用 STL 的 vector push_back 类对象时出现问题,偶尔发现 vector 在 push_back 时的调用类对象的...
2020-03-12 21:08:06
517
原创 TCP和UDP的区别及应用场景
在TCP/IP模型中,传输层有两个重要协议:TCP—传输控制协议(Transmission Control Protocol)UDP—用户数据报协议(User Datagram Protocol)接下来我门看看TCP和UDP的区别及应用场景区别:1.TCP是通信之前需要建立连接,UDP通信不需要建立连接。TCP在通信之前需要进行三次握手建立连接,通信完毕之后进行四次挥手断开连接,这是它...
2020-03-12 15:37:51
367
原创 进程和线程的区别看这篇就够了(详细总结)
首先,进程是资源分配的最小单位,线程是资源调度的最小单位,这么说可能有点难以理解,说白了进程就是线程的容器,线程是进程内部的执行流,一个进程如果只有一个线程,那么就是进程或线程,如果有很多线程,那么就是一个线程组!进程就相当于一个大家庭,而线程就是家庭里面的各个成员。区别:进程之间是相互独立的,线程之间是共享资源的。进程是资源分配的最小单位,线程是资源调度的最小单位。进程的创建和销毁、调...
2020-03-11 21:00:44
227
转载 printf格式输出数字,位数不够前面补0,适用与输出编号
转载自: http://blog.chinaunix.net/uid-26295753-id-2981750.htmlprintf格式输出:%[flags][width][.perc][F|N|h|l]type用到了flags中的 0 (注意是零不是欧) ,其百科描述为:...
2020-03-07 19:41:42
2033
原创 C++中cin和getline一起使用出错的解决方法
今天下午,在做题的时候,碰到了这个问题。。。一个很简单的string字符串解决的题,很容易想,但是最后却卡在那里了,一直出错,拿到本地调试才发现问题,就是cin和getline函数一起使用时造成的错误。代码框架大概是这样的:int main(){ int n; while (cin >> n) { string str; for (int i = 0; i &l...
2020-03-05 15:31:44
2632
1
原创 单调栈的理解与应用
下午在leetcodde刷题的时候,碰到了这个题。下一个更大元素 II给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。示例 1:输入: [1,2,1]输出: [2,-1,2]解释: 第一个...
2020-02-22 17:45:09
163
原创 生成窗口最大值数组
题目描述有一个整型数组arr和一个大小为w的窗口从数组的最左边滑到最右边,窗口每次向右边滑一个位置,求每一种窗口状态下的最大值。(如果数组长度为n,窗口大小为w,则一共产生n-w+1个窗口的最大值)输入描述:第一行输入n和w,分别代表数组长度和窗口大小第二行输入n个整数X,表示数组中的各个元素输出描述:输出一个长度为n-w+1的数组res,res[i]表示每一种窗口状态下的最大值示例...
2020-02-02 12:01:52
295
原创 199. 二叉树的右视图
给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例:输入: [1,2,3,null,5,null,4]输出: [1, 3, 4]解释:1 <—/ 2 3 <—\ 5 4 <—来源:力扣(LeetCode)链接:https://leetco...
2020-01-29 15:29:34
124
原创 Strlen函数的三种实现方法
C函数库中有str类函数,包含在<string.h>头文件中,其中有个strlen函数,是用来计算字符串长度的函数。strlen函数的原型:size_t strlen( const char *string );参数是一个const修饰的字符串,返回值是size_t。size_t类型的返回值是因为统计字符串的长度不可能为负数,但是有一个小小的坑。比较两个字符串长度时不能直接相减...
2020-01-13 16:08:10
455
原创 力扣(LeetCode)比特位计数
给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例 2:输入: 5输出: [0,1,1,2,1,2]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/counting-bits著作权归领扣网络所有。商业...
2020-01-04 17:00:36
211
原创 (LeetCode)213. 打家劫舍 II
你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [2,3,2]输出: 3解释: 你不能...
2019-12-24 20:07:06
122
原创 (LeetCode)198. 打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号...
2019-12-24 19:19:09
135
原创 力扣(LeetCode) 5.最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindromic-substring...
2019-12-21 16:24:20
129
原创 正数数组的最小不可组成和
链接:https://www.nowcoder.com/questionTerminal/f5368cd8008d41f58b2da7ced2f4d809来源:牛客网给定一个正数数组arr,其中所有的值都为整数,以下是最小不可组成和的概念把arr每个子集内的所有元素加起来会出现很多值,其中最小的记为min,最大的记为max在区间[min, max]上,如果有数不可以被arr某一个子集相加得...
2019-12-20 17:00:15
173
原创 GET和POST的区别
GET方法没有正文,参数在url中,POST方法参数在正文中。GET请求可以缓存,POST请求不能缓存GET请求页面后退时,不产生影响,POST请求页面后退时,会重新提交请求。GET方法传参大小有限制,一般视浏览器而定,POST不限制。POST方法理论上比GET方法安全,但是如果有人进行抓包,两个方法的安全性就没多大区别了。Get是获取信息,而不是修改信息,类似数据库查询功能一样,数据...
2019-12-18 18:18:59
73
原创 [编程题]迷宫问题
链接:https://www.nowcoder.com/questionTerminal/cf24906056f4488c9ddb132f317e03bc来源:牛客网定义一个二维数组N*M(其中2<=N<=10;2<=M<=10),如5 × 5数组下所示:int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0...
2019-12-03 16:21:34
912
原创 [编程题]字符串通配符
链接:https://www.nowcoder.com/questionTerminal/43072d50a6eb44d2a6c816a283b02036来源:牛客网问题描述:在计算机中,通配符一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。现要求各位实现字符串通配符的算法。要求:实现如下2个通配符:*:匹配0个或以上的字符(字符由英文字母和数字0-9组成,不区分大小写。下同...
2019-11-28 12:34:47
344
原创 [编程题] iNOC产品部-杨辉三角的变形
链接:https://www.nowcoder.com/questionTerminal/8ef655edf42d4e08b44be4d777edbf43来源:牛客网11 1 11 2 3 2 11 3 6 7 6 3 11 4 10 16 19 16 10 4 1以上三角形的数阵,第一行只有一个数1,以下每行的每个数,是恰好是它上面的数,...
2019-11-25 10:04:08
173
原创 二维数组的存储地址?
链接:https://www.nowcoder.com/questionTerminal/8b72a08c6d27425c8aa720b9a589740f来源:牛客网[单选题]二维数组X按行顺序存储,其中每个元素占1个存储单元。若X[4][4]的存储地址为Oxf8b82140,X[9][9]的存储地址为Oxf8b8221c,则X[7][7]的存储地址为()。A. Oxf8b821c4B....
2019-11-19 19:42:59
1220
原创 【详解】C和C++中static关键字的区别
C语言中:static关键字可以 1.修饰变量 变量又分为全局变量和局部变量。 (1).修饰全局变量 作用域仅限于变量被定义的文件中,其他文件即使用extern 声明也没法使用此变量。 (2).修饰局部变量 在函数内定义的局部变量被修饰,可以延长变量的生命周期,但是作用域不变。 2.修饰函数 和修饰全局变量的效果类似,表明函数的作用域仅限于被定义...
2019-11-17 21:52:18
641
原创 详解malloc/free和new/delete的区别
malloc/free和new/delete的区别malloc/free1.C标准库中的函数 2.Void*-->强转 3.参数:手动计算字节数 4.申请失败->判空 5.malloc申请空间的同时不能初始化空间内的元素6.malloc:申请空间但不会调用构造函数 7.free:释放空间但不会调用析构函数 8.申请的空间在堆上 ...
2019-11-14 13:36:56
330
原创 C++日期类
写了个日期类,大家看看吧。。。头文件Date.h#pragma onceclass Date{ //重载输入输出操作符 friend ostream& operator<<(ostream& _cout, const Date& d); friend istream& operator>>(istream& _cout,...
2019-11-13 00:47:32
351
原创 C和C++的区别
C语言和C++语言的联系:C++是在C的基础之上扩展出来的语言,和C的语法基本一致,保留了C中的关键字,增加了自己的关键字,与C有一定的区别。C语言和C++语言的区别:(1)C是面向过程的,C++是面向对象的(也能面向过程)。面向过程就是以过程为中心的编程思想。分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。比如说我现在要吃饭,就得烧火,添...
2019-11-05 22:17:41
3563
原创 猫狗收容所(C++)
题目描述有家动物收容所只收留猫和狗,但有特殊的收养规则,收养人有两种收养方式,第一种为直接收养所有动物中最早进入收容所的,第二种为选择收养的动物类型(猫或狗),并收养该种动物中最早进入收容所的。给定一个操作序列int [] [2] ope(C++中为vector<vector>)代表所有事件。若第一个元素为1,则代表有动物进入收容所,第二个元素为动物的编号,正数代表狗,负数代表猫;...
2019-11-05 20:28:44
1522
原创 剑指Offer - 复杂链表的复制
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)复杂链表如下图所示:在普通的单链表上多维护了一个随机指针random。我们要做到的是复制一个和上图一模一样的链表结构出来并返回。思路:(一)首先我们在原链表的每个节点的后面加...
2019-11-04 16:24:30
94
原创 C中const和C++中const的区别和用法
C中的constC语言中的const可以用来修饰变量,用const修饰的变量为常变量,本质还是变量,只不过具有常属性。#include<stdio.h>int main(){ const int a = 10; int arr[a] = {0};//报错,数组[]内的表达式应为常量值 return 0;}经过const修饰变量的内容不允许被修改,但是可以通过指针的方...
2019-11-03 17:39:03
342
原创 this指针
1.this指针class Student{public: void Init(const char* name, int age) { strcpy(_name, name); _age = age; } void Print() { cout << _name << " " << _age << endl; }pr...
2019-11-02 00:37:04
87
原创 引用及指针和引用的区别
一.在C语言中,我们要给函数传参,有两种方法。1.传值void Swap(int a,int b){ int tmp=a; a=b; b=tmp;}int main(){ int a=10; int b=20; Swap(a,b); return 0;}优点:形参不影响实参(保护实参),可读性强。缺点:不能通过形参改变实参,效率低(需要用实参拷贝形参)。2.传地...
2019-10-31 18:05:20
763
1
原创 C++中的缺省函数和函数重载
一,缺省函数1.概念:缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参。void TestFunc(int a = 10)//函数参数a默认是10{ cout << a << enl;}int main(){ TestFunc();//a=10 TestFunc(100);//a=10...
2019-10-31 17:06:08
439
原创 Linux之进程等待
一.进程等待的必要性。1.程序被加载到内存中之后,父进程fork出子进程之后,子进程退出,父进程如果对子进程不管不顾,那么子进程的退出信息没人来回收,就会造成"僵尸进程"的问题,用kill -9 都无法杀死,就会造成内存泄漏。2.子进程退出,那么就必须知道分配给子进程的任务子进程完成的怎么样了,以及是怎么退出的(退出原因),所以就必须有进程等待,父进程通过进程等待的方式,回收子进资源,获取子进...
2019-10-30 00:44:08
260
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人