技术类
liyuloves
这个作者很懒,什么都没留下…
展开
-
MyAtoi
#include <bits/stdc++.h>using namespace std;#define mmax 2147483647#define mmin (-2147483647-1)int myAtoi(string s) { int i = 0, sign = 1, tmp = 0; //没有符号字符时sign是正数 while(s[i] == ' ') ++i; //1.忽略前导空格 if(s[i] == ...原创 2021-09-16 18:04:28 · 120 阅读 · 0 评论 -
面试题:树中两个节点的最低
题目是:输入两个树节点,求它们的最低公共祖先。你要向面试官问的问题:1.这棵树是不是二叉树? 如果是二叉树,并且是二叉搜索树,那么是可以找到公共节点的。查找方法:二叉搜索树是排序过的,位于左子树的节点都比父节点小,而位于右子树的节点都比父节点大,我们只需要从树的根节点开始和两个输入的节点进行比较。如果当前节点的值比两个节点的值都大,那么最低的共同父节点一定在当前节点的左子树中,于是下一...原创 2018-09-01 19:13:41 · 213 阅读 · 0 评论 -
面试中经常遇到的一个问题:把字符串转换成整数
// 面试题67:把字符串转换成整数// 题目:请你写一个函数StrToInt,实现把字符串转换成整数这个功能。当然,不// 能使用atoi或者其他类似的库函数。//要对代码进行鲁棒性判断,同时还要注意一些非法的输入(定义一个全局变量来判断是不是非法的输入)//判断输入的空串的情况#include <cstdio>long long StrToIntCore(cons...原创 2018-09-01 17:47:01 · 196 阅读 · 0 评论 -
最大公共子序列
#include<iostream>#include <set>#include <string>using namespace std;char str[100] = {0};set<string> st;void Show(int** LCS,int m,int n,const char* str1,const char* st...原创 2018-08-27 12:53:20 · 129 阅读 · 0 评论 -
最大公共字串
#include<iostream>using namespace std;void AAAAAA(char* str1,char* str2){ if(str1 == NULL || str2 == NULL) return; int m = strlen(str1); int n = strlen(str2); int*...原创 2018-08-27 12:51:18 · 427 阅读 · 0 评论 -
STL的相关知识
1.C++vector中迭代器失效的原因:答:众所周知,vector在内存中是顺序存储的,那么当vector的长度增加时,也就是往里面继续pushback新的数据,当前块的内存不够,vector不得不重新申请一块新的更大的内存,然后把之前的数据复制过来,再插入新的数据。当定义一个vector的迭代器后,如果在这之后发生了插入新的数据,那么这个迭代器将失效,因为迭代器是通过指针实现的,内存地...原创 2018-08-20 10:02:24 · 123 阅读 · 0 评论 -
1.C++的三大特性为:继承,多态,封装
(1)继承。一个对象直接使用另一个对象的属性和方法。优点:1.减少重复的代码。 2.继承是多态的前提。 3.继承增加了类的耦合性。缺点:1.继承在编译时刻就定义了,无法在运行时刻改变父类继承的实现; 2.父类通常至少定义了子类的部分行为,父类的改变都可能影响子类的行为; 3.如果继承下来的子类不适合解决新问题,父类必须重写或替换,那么这种依赖关系就限制了灵活...转载 2018-08-17 14:45:41 · 166 阅读 · 0 评论 -
查看linux系统常用的命令,Linux查看系统配置常用命令
1.linux CPU大小 cat /proc/cpuinfo |grep "model name" && cat /proc/cpuinfo |grep "physical id"说明:Linux下可以在/proc/cpuinfo中看到每个cpu的详细信息。但是对于双核的cpu,在cpuinfo中会看到两个cpu。常常会让人误以为是两个单核的cpu。其实应该通过Phys...原创 2018-08-16 23:43:36 · 145 阅读 · 0 评论 -
一些常用的C++11新增特性
C++11新标基于C++编程社区的大量实践经验,并吸收了很多Boost库的特性,还对原有C++做了一些改进工作,是学习现代C++编程的基础。这里参考《C++ Primer Plus 第六版》,对一些常用的C++11新特性做一个总结:1、统一的初始化C++11支持对于所有的内置类型和用户定义类型使用大括号方式的初始化列表,使用初始化列表时,可以添加等号,也可以没有。int x = {5}...转载 2018-08-11 12:53:54 · 439 阅读 · 0 评论 -
简述快排
之前对快排还稍有疑问,今天特意认真的学习了一下,算是彻底的大彻大悟了吧,所以今天特意分享一下。 快排的话有两个函数,一个函数是找到一个标准值,使标准值左边的都比标准值小,标准值右边的都比标准值大,另一个就是快排的函数了,每调用一次快排的函数就将确定标准值的位置,如此循环往复,最终也就确定了最终的排序。代码如下:#include <iostream>#include...原创 2018-08-02 10:54:34 · 444 阅读 · 0 评论 -
智能指针
C++面试过程中,智能指针往往显的特别的重要,比如智能指针有哪些?shared_ptr的设计原理是什么?如果让你自己设计一个智能指针,你如何完成?等等...,同时,智能指针还具有非常实用的价值。1.智能指针背后的设计思想:void remodel(std::string & str){ std::string * ps = new std::string(str);...转载 2018-08-01 17:02:31 · 102 阅读 · 0 评论 -
总结一些C++遇到的一些问答题
1.C++编译器自动为类产生的四个缺省函数是什么? 答:默认构造函数、拷贝函数、析构函数、赋值运算符函数和取地址运算符函数2.请简述C++中栈空间和堆空间的主要区别是什么?答:1)申请方式不同,在C++中栈空间是系统自动分配的,堆空间是用户自己申请空间并且需要自己释放。 2)系统响应方式不同 3)空间大小不同,栈空间小,堆空间大。 4)生长方式不同...原创 2018-08-01 17:00:32 · 710 阅读 · 2 评论 -
总结一下Linux中经常使用的一些命令
1.ls:显示了当前文件夹下的文件2.mkdir+文件夹名: 创建一个文件夹3.rm +文件名:删除一个文件,当加上 rf的时候表示强制删除该文件4.vi : 使用vi编译器,进入vi 开始编写文件5.dd 删除文件中的某行数据 6.d p:拷贝某行或多行数据7.u:撤销命令,返回上一步的操作8.编译指令,比如:gcc test.c -o app...原创 2018-08-01 23:12:42 · 109 阅读 · 0 评论 -
关于死锁
死锁产生的四个必要条件互斥条件:资源是独占的且排他使用,进程互斥使用资源,即任意时刻一个资源只能给一个进程使用,其他进程若申请一个资源,而该资源被另一进程占有时,则申请者等待直到资源被占有者释放。 不可剥夺条件:进程所获得的资源在未使用完毕之前,不被其他进程强行剥夺,而只能由获得该资源的进程资源释放。 请求和保持条件:进程每次申请它所需要的一部分资源,在申请新的资源的同时,继续占用已分配到...转载 2018-08-14 10:03:02 · 147 阅读 · 0 评论