- 博客(60)
- 收藏
- 关注
原创 电话拦截-
这道题目标记是个简单题,但我却写了很久,也很长时间没有写题了。写题也是个熟练活。额外写了两个函数,一个是字符串是否和模式匹配的函数(这个也是根据题目的特定限制要求做的),一个是检查某一个呼入号码是否在白名单里的函数。这里需要选用一个顺序型的容器,以满足题目中的按照给定记录中号码首次呼入出现的先后顺序这一要求。选用了vector,还用了结构体的类型以存储呼入的号码+接通次数+拒接次数。逻辑控制基本采用的都是 if else,写的很长,感觉是很笨的写法,很多值得优化的地方。不知道有没有更为简洁...
2022-05-14 11:56:08 406
原创 计算机操作系统面试知识
这里只做一些简单的记录,操作系统应该具有以下几个方面的功能:处理机管理,存储器管理、设备管理和文件管理近似的说,多线程允许CPU保持两个不同的线程状态并且在纳秒级的时间完成切换。线程是一种轻量级进程,多线程不会提供真正的并行处理。在一个时刻只有一个进程在运行。单 CPU 多线程提供的是并发能力;而多 CPU 则可以提供并行能力。多核指的是什么?多核是指在一枚处理器(processor)中集成两个或多个完整的计算引擎。核跟CPU的关系是:核属于CPU的一部分。处理机的分配和运行都以进程..
2022-05-08 17:40:31 529
原创 ubuntu虚拟机因磁盘空间不足无法进入图形界面的解决方法+树莓派上网解决办法+ubuntu虚拟机开机后黑屏
2021年11月9号:记录一个问题,之前笔记本上的ubuntu虚拟机只分配了20GB的内存,并且还给了一个很大的交换文件,中间提示了很多次可用的空间不足,但都选择了忽略,后面开机就不能显示到图形界面了,卡在了uid 121.......参考了几篇博文之后,解决方法如下1.开启该ubuntu虚拟机,在第一个页面的时候就按下ctr+shift+F2,进入命令行模式2.删除掉一些不必要的文件,我这里最主要的是删除了swapfile(在删除之前需要先关闭这个swapfile的使用,命令是).
2021-11-15 20:50:11 3102
原创 记录面试中被要求写的一些题以及别的爱考的:最长回文子串+最长无重复字符的子串+最长公共子序列
1.最长回文子串 力扣第五题子串:子串必须要是连续的,区别于子序列的概念子序列:对于暴力解法可以优化的地方:只在子串的长度>当前最大的长度的时候,才会去判断回文,class Solution {public:bool ishuiwen(string s){ if(s.size()==1) return true; int i=0; int j=s.size()-1; while(i<=j){ if(s[i]!=s[j]){
2021-09-20 20:48:38 102
原创 面试总结(4)
因为有道云笔记出了些问题,暂时先在这个上面记录,之后每次的笔试以及面试,当天一定要在当天就完成回顾,不然后面肯定会来不及去补充。这些天一天必须保持2-3题的刷题量。C++的多态,这个知识点,早就应该掌握 https://www.nowcoder.com/discuss/700141?type=post&order=time&pos=&page=1&ncTraceId=&channel=-1&source_id=search_post_nctrack..
2021-09-13 11:19:42 146
原创 新标准C++程序设计第13+14章+15章阅读记录
第13章:运算符重载第14章:继承与派生protected:保护成员的可访问范围比私有成员大,比公有成员小。能访问私有成员的地方都可以访问保护成员。保护成员扩大的访问范围表现在基类的保护成员可以在派生类的成员函数中被访问。...
2021-09-08 16:58:10 125
原创 深度优先搜索+回溯法
深度优先搜索C++题解中的:深度优先搜索在搜索到一个新的节点时,立即对该新节点进行遍历;因此遍历需要用先入后出的栈来实现,也可以通过与栈等价的递归来实现。对于树结构而言,由于总是对新节点调用遍历,因此看起来是向着“深”的方向前进。1.岛屿的最大面积class Solution {public:int dfs(vector<vector<int>>& grid,int i,int j){//返回的是以i,j出发找到的岛屿的最大面积 if(i<
2021-09-02 22:45:38 1163 2
原创 线性链表的增删改查
今天面试时写的,应该注意时间,现在的代码不能支持删除第一个结点的,和在第一个结点之前插入,后面有空了的话要把加入头结点的方式的补上,让代码更完善。#include <iostream>using namespace std;/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; *
2021-08-30 17:00:48 215
原创 面试总结(三)
1.怎么测试一个电商平台,一般都是从那几个方面测试2.怎么对一把椅子进行测试?从功能,性能,安全性,适用性方面等来测测试:3.进程是如何被kill掉的?(操作系统)内核检测到系统内存不足,挑选并杀掉某个进程的过程,当系统内存不足的时候,out_of_memory()被触发,然后调用select_bad_process()选择一个“bad"进程杀掉。最bad的那个进程就是那个最占用内存的进程。...
2021-08-29 21:19:18 3144 2
原创 把数组排成最小的数字,划分字母区间,最小覆盖子串,验证回文字符串II
面试题45:把数组排成最小的数字输入一个正整数数组,把数组里所有的数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。class Solution {public:static int MyCompare(const string& s1,const string& s2){ return s1+s2<s2+s1;} string minNumber(vector<int>& nums) { int n=num
2021-08-02 22:58:44 140 1
原创 剑指offer:把字符串转换成整数+从上到下打印二叉树II
1.把字符串转换成整数自己写了一个比较麻烦的解法,class Solution {public: bool isoverflow(int fuhao,int x,int mul,int sum){ bool res=false; if(fuhao==1){ if(sum>INT_MAX-mul*x) res=true; } if(fuhao==-1){ if(sum>
2021-06-01 12:20:23 78
原创 剑指offer:用两个栈实现队列+包含min函数的栈+栈的压入,弹出序列+合并两个有序数组
1.用两个栈实现队列当Stack2不为空时,在stack2的栈顶元素是最先进入队列的元素,可以弹出。当stack2为空时,我们把stack1中的元素逐个弹出并压入stack2.class Solution{public: void push(int node) { stack1.push(node); } int pop() { if(stack2.size()<=0){//这句是必不可少的,试想如果没有这个条件判断,则会发生st
2021-05-28 21:36:32 103 1
原创 树的子结构+重建二叉树
树的结构的定义是一个递归的定义。树是n个结点的有限集。在任意一棵非空树中(1)有且仅有一个特定的称为根的结点(2)n>1时其余结点可分为m个互不相交的有限集,其中每一个集合本身又是一棵树,并且称为根的子树。二叉树的实现和遍历面试题:树的子结构class Solution {public: bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2) { bool result=false;//采用先序遍历
2021-05-23 12:10:38 80 1
原创 剑指offer剪绳子+礼物的最大价值+把数字翻译成字符串(这三道都是动态规划)
1. 面试题14 剪绳子要点:首先定义函数f(n)为把长度为n的绳子剪成若干段后各段长度乘积的最大值。 在减第一刀的时候,我们有n-1种可能的选择,也就是剪出来的第一段绳子的可能长度分别为1,2,...,n-1.因此f(n)=max(f(i)*f(n-i)).class Solution {public: int cuttingRope(int n) {if(n==2) return 1;if(n==3) return 2;int f[n+1];f[1]=1;f[2]=2;f
2021-05-09 19:57:11 76
原创 回溯算法相关:剑指offer面试题38字符串的排列+括号生成+电话号码的字母组合+幂集
1.旋转数组的最小数字这个题目之前已经做过了,但是仍然不很清楚,要深刻理解二分查找才行。牛客网上的测试用例太少了,以至于很可能发生你的代码在牛客网上通过了但是在leetcode上不能通过。所以最好还是在力扣上提交。...
2021-05-04 19:41:18 125
原创 20210331字符串+机试总结,一些输入输出的问题,对二维数组怎么按照第一个数字的大小进行排序
字符串的操作,我自己字符串的操作太不熟练了,今天的笔试太失误了,要好好学习字符串的操作。为什么我的qsort函数在vistual studio里面编译就是不太行呢字符串数组,getline()可以读进空格,getline(cin,s),而cin不能读进空格。cin.getline(m,5);二维数组按照第一列的值排列,如果需要维数是由用户的输入则需要动态分配内存参考https://blog.csdn.net/c12345423/article/details/53056116这个参.
2021-04-28 10:59:18 252 1
原创 剑指offer字符串相关:字符串压缩+最长不含重复字符的子字符串+翻转字符串+字符串转整数
1.字符串压缩class Solution {public: string compressString(string S) { if(S.length()==0) return S; string compressResult; int count=0; int i=0; int j=0; while(i<S.length()&&j<S.length()){
2021-04-24 20:37:24 185
原创 剑指offer上的题目:丑数+利用数组实现简单的哈希表实现以空间换时间+字符流中第一个只出现一次的字符
1.丑数题目:我们把只包含因子2 3 5的数称作抽数。1是第一个丑数。关于set的用法:默认是升序,使用set <int,greater<int> >就是降序了。迭代器还有rbegin,之前没有用过这个,指向的是最后一个元素。怎么使用迭代器删除字符串中的字符,注意迭代器的失效问题方法一:时间会超过,逐个判断每个整数是不是丑数的解法。class Solution {public:bool isUglynumber(int x){ while(x%2==
2021-04-21 16:45:57 96 1
原创 c++primer第七章阅读记录和新标准C++第十一第十二章阅读
第六章因为其他的工作耽误了进度,很久才把那一章看完,终于来到了第七章类,这一章看起来内容较多,但也是c++关键的部分。在c++语言中使用类定义自己的数据类型。第21页的练习是:编写程序,读取多条销售记录,并统计每个ISBN(每本书)有几条销售记录。 输入表示多个ISBN的多条销售记录来测试上一个程序,每个ISBN的记录应该聚在一起。...
2021-04-21 16:45:40 136
原创 力扣上的题:括号生成+三树之和+第一次只出现一次的字符
1.括号生成参考官方题解做:方法一:暴力法,生成所有的括号序列判断是否合法,但我对递归的生成所有的序列的方法不清楚通常回溯法算法适合用递归实现代码。怎么判断括号是不是合法的?左括号的数目和右括号数目肯定是相同的,右括号的数目在任何时刻都不能比左括号的数目大。 在左括号的数目<n的时候我们可以放一个左括号,如果右括号的数目小于左括号的数目,我们可以放一个右括号。...
2021-04-18 21:00:35 154
原创 面试知识总结(一)
1.多进程和多线程进程是程序的一次执行。由程序段,相关的数据段和PCB三部分便构成了进程实体。进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
2021-04-12 20:23:27 145 3
原创 重写剑指offer上的一些题:数组中重复的数字+最小的k个数+数组中的第k个最大元素
1.找出数组中重复的数字。在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。参考leetcode评论,这种原地置换的目的主要是为了降低空间复杂度。因为哈希表的方法(比如使用一个set)使用了一个大小为O(n)的哈希表。但我没有明白为什么每个数字最多只要交换两次就能找到属于它自己的位置,这样就使得代码中尽管有一个两重循环,但每个数字最多只要交换两次就能找到属于它自己的位置,因此总的时间复杂度为O(n)...
2021-04-10 22:45:02 198 1
原创 单链表的基本操作+链队列的基本操作+二叉搜索树的创建插入和搜索
#include <iostream>#include <stack>using namespace std;typedef struct ListNode{ int val; struct ListNode* next;}ListNode, *LinkedList;/*struct ListNode { int val; ListNode *next; ListNode() : val(0), next(nullptr) {.
2021-04-10 15:31:15 135
原创 复习排序算法
1.直接插入排序是一种最简单的排序方法,它的基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的,记录数增1的有序表。void insertsort(int a[],int length){ int i,j,shaobing; for(i=1;i<length;i++){ if(a[i]<a[i-1]){//< 的话需要将a[i]插入有序子表 shaobing=a[i];//复制为哨兵 a[
2021-04-09 21:11:26 253 4
原创 剑指offer:调整数组顺序使奇数位于偶数前面+表示数值的字符串+不用加减乘除做加法+整数转字符串
1.面试题21:调整数组顺序使奇数位于偶数前面题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。class Solution {public: vector<int> exchange(vector<int>& nums) { if (nums.size()==0) return nums; int i=0; int j=nums.siz
2021-03-21 21:03:04 74
原创 3.4代码的鲁棒性之链表中倒数第k个节点+链表中环的入口节点+反转链表+合并两个排序的链表
面试题22:链表中倒数第k个节点.下面的这个解法是比较容易想到的,但是存在着几个问题:没有处理节点的数目少于k的情况;没有处理k=0及k为负数的情况。在剑指offer中,k是无符号类型。输入k=0或者k=-1没有意义,可以返回空指针。如果链表的节点数少于k,那么在for循环中q会变成空指针,一旦到空指针了就表明k超过了节点的个数了,此时返回nullptr即可。class Solution {public: ListNode* getKthFromEnd(ListNode* head, i
2021-03-10 11:33:49 73 1
原创 gdb调试程序记录+各种记录!socket通信改为不同主机之间 做好记录
带参数的程序该怎么调试:例如一个程序名为prog 参数为-l a -C abc则,运行gcc/g++ -g prog.c/cpp -o prog就可以用gdb调试程序prog#gdb prog进入gdb调试界面输入参数命令set args 后面加上程序所要用的参数,注意,不再带有程序名,直接加参数,如:set args -l a -C abc回车后输入r即可开始。需要单步调试的话。如何设置断点?设置断点可以通过b或者break设置断点,断点的设置可以通过函数..
2021-03-04 10:48:40 304 3
原创 c++primer第六章阅读记录——函数+自定义数据类型
第六章 函数6.1.1 局部对象形参和函数体内部定义的变量统称为局部变量。在所有函数体之外定义的对象存在于程序的整个执行过程中。自动对象:我们把只存在于块执行期间的对象称为自动对象。注意在函数体内部的内置类型变量将不被初始化。局部静态对象:局部静态对象在程序的执行路径第一次经过对象定义语句时初始化,并且直到程序终止才被销毁。我们建议变量在头文件中声明,在源文件中定义。在头文件中进行函数声明。函数返回类型:函数的返回类型不能是数组类型或函数类型,但可以是指向数组或函数的指针。6
2021-02-26 16:58:02 212 5
原创 VM虚拟机安装树莓派系统遇到的问题
2021.1.17 今天被虚拟机上的这个树莓派系统气死,首先是在编译的时候出现问题:rlwe_rand_openssl_rand.c:5:10: fatal error: openssl/rand.h: 没有那个文件或目录#include <openssl/rand.h>。树莓派上默认的编辑器是vi,感觉不好用。但是执行下面这行,报错:E:无法定位软件包。sudo apt-get install libssl-dev出现无法定位软件包,更换源:用针对Ubuntu系统的换源方法不好使.
2021-01-19 21:03:22 1008 2
原创 第五章阅读记录
第五章 语句5.1 简单语句复合语句(块):复合语句是指用花括号括起来的语句和声明的序列,复合语句也被称为快。一个块就是一个作用域,在块中引入的名字只能在块内部以及嵌套在块中的子块里访问。练习5.4:(b)。变量status必须定义在语句的外部,因为其他代码也需要访问控制变量status。5.3 条件语句悬垂else: 就C++而言,它规定else与离他最近的尚未匹配的if匹配。整型常量表达式:是指值不会改变并且在编译过程中就能得到计算结果的表达式。...
2020-12-24 10:23:51 63 1
原创 C语言 ;ubuntu写shell文件打开多个终端的方法
http://c.biancheng.net/cpp/html/3418.html发现C语言中文网讲的还不错
2020-12-23 21:12:25 670 1
原创 第四章阅读记录
第四章 表达式表达式由一个或多个运算对象组成,对表达式求值将得到一个结果。运算对象转换:小整数类型通常会被提升成较大的整数类型,主要是int。重载运算符 左值和右值。可以做一个简单的归纳:当一个对象被用作右值的时候,用的是对象的值(内容);当对象被用作左值的时候,用的是对象的身份(在内存中的位置)。 已经有几种我们熟悉的运算符是要用到左值的:取地址符作用于一个左值运算对象,返回一个指向该运算对象的指针,这个指针是一个右值。 内置解引用运算符的求值结果是左值。 如果表达式的求值结果是左值,dec
2020-12-20 15:13:33 82
原创 C++Primer第三章阅读记录
今天发现之前写的第一章的记录后面很多的内容都没有保存上!!太难受了,还是记录了一些过程的!之后一定要注意及时点保存草稿!本章将介绍两种最重要的标准库类型:string和vector。3.2 标准库类型Stringstring s1;//默认初始化,s1是一个空串getline函数的参数是一个输入流和一个string对象。和输入运算符一样,getline也会返回它的流参数,也可以getline的结果作为条件。使用endl结束当前行并刷新显示缓冲区。while(getline(cin,lin
2020-12-14 19:36:38 94
原创 C++Primer第二章阅读记录
2.1 基本内置类型数据类型long long是在C++11中新定义的。练习2.1:类型int、long 、 long long和short的区别是什么?无符号类型和带符号的类型的区别是什么?float和double的区别是什么?int是整型,long是长整型。无符号类型中所有比特都用来存储值。浮点型可表示单精度,双精度和扩展精度值。C++标准制定了一个浮点数有效位数的最小值,然而大多数编译器都实现了更高的精度。通常,float以一个字(32比特)来表示,double以两个字来表示。练习2.
2020-12-03 20:35:18 133
原创 C++Primer第一章阅读记录
1.1.1 编译、运行程序参考https://blog.csdn.net/qq_18116685/article/details/86094746文件命名规定:c源码:file.c c/c++头文件:file.h C++源码:file.cpp c预处理文件:file.i C++预处理文件:file.ii 汇编文件:file.sgcc编译程序的过程可分为四个步骤:预处理,编译,汇编和链接。C++许多标准, 如最新的C++11标准, 如果你的代码有用到c++11的语言特性, 在编译.
2020-11-12 16:47:36 125
原创 剑指offer代码的完整性:打印从1到最大的n位数,数值的整数次方,删除链表的节点
代码的完整性指的是:代码是否完成了基本的功能,输入边界值是否能得到正确的输出,是否对各种不合规范的非法输入做出了合理的错误处理。1.打印从1到最大的n位数输入数字n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。当输入的数很大时,求最大的n位数用整型或者长整型都会溢出。最常见和最容易的方法是用字符串或者数组表达大数。...
2020-10-25 11:38:46 169
原创 IEEE Latex模板使用记录
cls文件是latex2e(latex的标准版本)的格式文件,它决定了latex源文件的排版布局。最一般的cls文件就是我们常用的article.cls,这表现在\documentclass{article}这一句里面。如果出版方提供了cls文件,我们可以把(假如cls文件名为xxx.cls):cls文件和你自己的latex文件放到同一个文件夹里面,在源文件里面用\documentclass{xxx}把参考文献那部分的代码换成:...
2020-10-17 17:18:08 462
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人