
C++
文章平均质量分 76
无名之辈W
不忘初心,方得始终
展开
-
C++面试复盘
文章目录1. C++的三大特性2. 讲讲多态的使用3. STL库有了解吗,都有啥,讲讲熟悉的几个库面试官巨无情。全程问C++知识。1. C++的三大特性C++的三大特性:封装、继承和多态。封装:将有关的数据及操作封装在一个对象中,外部在使用时调用相应的功能,这样增加了安全性,简化了编程;继承:继承是面向对象的重要概念。就是在软件开发的过程中已经建立了一个类了,探后又想建立另一个与已有类功能类似的一个类,这个时候就可以用继承;多态:对同一个消息所做出的反应不同,也就是执行不同的操作,这样提高了代原创 2020-09-23 10:45:30 · 201 阅读 · 0 评论 -
DH笔试复盘
文章目录原创 2020-09-15 22:27:52 · 1136 阅读 · 0 评论 -
DTKJ笔试复盘
文章目录选择题编程题10道选择,2道编程选择题编程题原创 2020-09-11 23:23:17 · 448 阅读 · 0 评论 -
剑指 Offer 50——第一个只出现一次的字符
题目描述:剑指 Offer 50. 第一个只出现一次的字符在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。示例:s = “abaccdeff”返回 “b”s = “”返回 " "限制:0 <= s 的长度 <= 50000分析:思路就是新建一个数组作为哈希数组,去存储所给字符串中每个字符出现的次数,键值key存储字符,值value存储该字符出现的次数。在这里字符(char)占了1个字节,长度为8,即1(byte) = 8(..原创 2020-09-07 15:30:22 · 188 阅读 · 0 评论 -
AWDZ笔试复盘
文章目录填空编程题1:实现一个函数,参数为一个整型类型,返回值为该参数二进制表示中0的个数编程题2:实现一个函数,参数为乱序整数数组,将数组奇数放到数组前部,从小到大排列;将数组偶数位于后部,从大到小排列智力题10道题/1hour,涉及填空、编程、逻辑填空计算程序的输出结果:int a[10] = [1,2,3,4,5,6,7,8,9,0];int* p = &a[1];请问p[5] =(7)【分析】int* p = &a[1];这句是将数组a中的第一个元素所在地址赋原创 2020-09-05 19:34:15 · 745 阅读 · 0 评论 -
HKWS笔试复盘
文章目录一、选择题二、多选三、简答四、编程15单选,5多选,1问答,1编程涉及:计算机组成原理、摄像机参数、测试知识、mysql、计算机网络、业务逻辑、产品分析一、选择题有些计算机将一部分软件永恒的存于只读存储器中,称之为(固件)调节以下哪个参数可以显著的提高图片整体亮度(饱和度)【照相机的一些参数设置】白平衡的作用有两个:还原环境的真实色彩、调节画面冷暖调。饱和度(saturation)指色彩的鲜艳程度,也称作纯度。是色彩的构成要素之一。纯度越高,表现越鲜明,纯度较低,表现则较黯淡。原创 2020-09-04 14:56:20 · 577 阅读 · 0 评论 -
WB笔试复盘
文章目录一、选择题一、选择题n个人围成一圆圈,从第一个人开始一次报数,每轮到m的人被淘汰;如此循环,问最后剩下的一个人 是谁。这种问题最适合用那种数据类型描述(循环链表)假定58租房发布一个任务,其中发布操作可以分为5个子任务,每个子任务分别需要时间1s,2s,3s,4s,5s,若按照流水线方式执行,从头到尾完成25个发布任务所需时间为(125s)一颗完全二叉树有367个节点,则这颗二叉树的叶子节点有(184)个【二叉树性质】(1)n = n0+n1+n2;(2)n0 = n2+1;(3)原创 2020-09-03 22:07:49 · 294 阅读 · 0 评论 -
笔试题:给出一串阿拉伯数字,输出对应的中文读法
文章目录笔试题知识点: 堆和栈的区别知识点: 进程(Process)和线程(Thread)的区别知识点: 二叉树的性质知识点: 指针知识点: 黑盒测试——等价类划分知识点: 进程通信知识点:十大经典排序操作知识点:HTTP协议编程题:给出一串阿拉伯数字,输出对应的中文读法笔试题来源:牛客、优快云、其他对于堆和栈的描述,正确的是()A.栈的大小会随着函数调用层次的变化而变化B.从堆上申请内存,没有释放的话,会造成内存泄漏;栈的内存由编译器管理,不会内存泄漏C.在windows上,堆的生长方向是原创 2020-09-02 15:23:57 · 1339 阅读 · 0 评论 -
剑指38 & 牛客——字符串的排列
文章目录面试题38:字符串的排列分析:1. 用递归思路实现全排列:递归C代码:2. 用DFS(深度优先搜索)实现全排列:DFS实现代码:DFS(AC):待解答~3. 利用C++中STL提供的next_permutation函数(AC)使用next_permutation的函数代码:总结:面试题38:字符串的排列输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s = “abc”输出:[“abc”,“acb”,“bac”,“bca原创 2020-08-14 16:18:54 · 137 阅读 · 0 评论 -
QAX选择、数据库的码、范式
文章目录一、单选编程题2020.08.1616道单选,10道多选,4道C++/python/JAVA语言方向题,两道编程。一、单选编程题第一题第二题原创 2020-08-19 16:49:12 · 632 阅读 · 0 评论 -
QAX笔试编程题2——实现字符串的撤销(undo)与恢复撤销(redo)+ C++中vector与stack的常用操作
文章目录2. 实现字符串的撤销(undo)与恢复撤销(redo)vectorstack2. 实现字符串的撤销(undo)与恢复撤销(redo)题目描述:undo就是撤销undo的前一个所输入的字符串,redo就是恢复之前撤销的字符串输入示例:hello undo redo world.输出示例:hello world.分析:对输入的字符串,分三种情况:代码:vector常用操作:蛮全的a.push_back(5); //在a的最后一个向量后插入一个元素,其值为5a.原创 2020-08-18 17:14:22 · 734 阅读 · 0 评论 -
QAX笔试编程题1——老板发奖金
1. 老板发奖金题目描述:老板一共需要给某个员工发奖金n元,可以选择一次发1元,也可以选择一次发2元…也可以选择一次发n元(必须以元为正数单位发放)。请问老板给这位员工发放完n元奖金共有多少种方法?分析:乍一看就是青蛙跳台阶问题的变态,之前有做过青蛙跳台阶的斐波那契解法,也做过变态解法。但是在考试时用这个解法并不能通过测试平台。难道是因为我没有写头文件这些内容,但系统明明是有函数定义接口的,于是直接写了函数。。。代码:如果是变态跳台阶问题,代码就是:#include<iostream&原创 2020-08-17 22:56:25 · 1874 阅读 · 2 评论 -
数组元素个数统计 + 字符串元素个数统计 + 单词出现次数统计 + 华为笔试题字符统计:按出现次数从多到少的顺序进行输出 + C++中map的知识
文章目录前言:元素个数统计一、题目:数组元素个数统计二、题目:统计字符串里字符出现的次数三、题目:统计所输入的单词出现的次数四、题目: 华为笔试——字符统计笔记1 关于map的知识2 统计数组元素个数[3 c++ STL容器map和unordered_map有什么区别](https://jingyan.baidu.com/article/851fbc377ed5f73e1e15ab10.html)前言:元素个数统计这个帖子专门来写哪些统计字符或者数组元素个数的题目,主要用到的就是C++的库内容。一、题原创 2020-08-14 23:29:50 · 1187 阅读 · 0 评论 -
BK测开笔试——四道编程
2020.08.11文章目录一、回文串构造二、方格染色三、数字拆分四、矩阵取数一、回文串构造分析定义两个指针分别从字符串首尾向中间遍历,碰到两指针值不一样的情况就将统计值+1。代码#include<iostream>#include<string>using namespace std;int CountNum(int len, string str){ int x=0,y=len-1; int count = 0; for(int原创 2020-08-13 10:26:21 · 315 阅读 · 0 评论 -
剑指offer——面试题22:返回链表中倒数第k个节点、求链表的中间节点
题目描述1:返回链表中倒数第k个节点输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。思路双指针即快慢指针方法。考虑特殊情况:1. 链表为空 2. k=0 3. k<链表长度。代码/** * Definition for singly-linked list. * struct ListNode { *原创 2020-08-04 10:09:38 · 326 阅读 · 0 评论 -
剑指offer——面试题19:正则表达式匹配、面试题20:表示数值的字符串
面试题19:正则表达式匹配题目描述:请实现一个函数用来匹配包括’.‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配。分析怎么说呢,对于当模式中字符的下一个为‘*’还是有点不理解,为什么会有三种情况出现,现大致举了三个例子来匹配三种情况,总之就是因为“*”可以匹配任意次(包括0)次的*之前的字符原创 2020-07-29 22:29:01 · 195 阅读 · 0 评论 -
GLD三道编程笔试复盘
怎么说呢,选择不会的挺多,编程题三道就基本没思路,还是缺乏练习,尤其是限时的那种练习,每回解题花费时间太长。关于搜索的解题思路太少了,这三道题基本都有涉及。现在打算复盘一下编程题:文章目录第一题:第二题:第三题:第一题:第二题:第三题:...原创 2020-07-29 15:03:40 · 677 阅读 · 0 评论 -
C++中的STL基础复习——unordered_set和set
文章目录STL——unordered_setSTL——set关于这个STL(Standard Template Library)标准模板库STL——unordered_setunordered_set基于哈希表,是无序的,是一个无序的容器。头文件#include<unordered_set>定义以及常用的操作定义:unordered_set<int> set;迭代器操作:begin返回unordered_set第一个元素的迭代器end返回unord原创 2020-06-25 16:04:54 · 1255 阅读 · 0 评论 -
键指offer——面试题9:用两个栈实现队列
面试题9:用两个栈实现一个队列题目描述: 已知队列的声明如下,请实现他的两个函数appendTail个deleteHead,分别完成在队列的尾部插入节点和在队列头部删除节点的功能。//声明两个栈template <typename T> class CQueue{ public: CQueue(void); ~CQueue(void); void appendTail(const T& node); T deleteHead(); private: st原创 2020-06-24 15:55:54 · 127 阅读 · 0 评论 -
设计拼写检查程序
为啥写这个呢?是因为今天有被HR问道这个问题,但没有手撕,只是说下思路,我打算自己实现以下。拼写检查程序题目描述:请设计一个自动拼写检查函数,对输入单词的错误依据字典进行修正。输入为一个单词和一组字典单词,每个单词长度不超过9位;若字典中没有与输入相同的单词,认为输入单词错误,需要从字典中选择一个修正单词;修正要求:与输入单词长度相同,且单词中不同字符数最少;存在多个修正单词时,取字典中的第一个;输出修正后的单词。...原创 2020-06-21 17:48:43 · 815 阅读 · 0 评论 -
深度优先搜索(DFS) + DFS的应用:字符串的排列问题
文章目录深度优先搜索**基本思路:****举例:****穷举:****深度优先算法思路:**DFS应用:全排列问题深度优先搜索深度优先搜索属于图算法的一种,是一个针对图和树的遍历算法。其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。 深度优先搜索是图论中的经典算法,利用深度优先搜索算法可以产生目标图的相应拓扑排序表,利用拓扑排序表可以方便的解决很多相关的图论问题,如最大路径问题等等。搜索算法是利用计算机的高性能来有目的的穷举一个问题的部分或所有的可能情况,从而求出原创 2020-06-19 20:48:03 · 628 阅读 · 0 评论 -
leecode——14.最长公共前缀
题目14:最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”分析与代码分析:怎么说呢,历尽了千辛万苦,调试了三四遍才通过所有案例。自己的思路总没有覆盖所有的案例,本地调试是一个很好地办法。第一遍是temp这个初始值设置有问题,太过固定;主要出错代码:char temp = strs[0][i];第二遍是不存在公共前缀的字符检测有误,因为没考虑到所有的情况;原创 2020-06-15 18:48:30 · 158 阅读 · 0 评论 -
C++基础复习——vector的向量的定义与初始化和输出、vector矩阵的定义与初始化和输出、几种重要的算法、cout语句格式控制输出
使用vector来定义一个矩阵(二维数组),对其初始化,并对其属性进行输出这是一个例子# include<vector># include <iostream>int main(){ using namespace std; vector<vector<int>> array(3); const int COL = 4; for ( int i=0; i < 3; i++) { arr原创 2020-06-08 19:27:30 · 6758 阅读 · 0 评论 -
C++基础复习——C++中的STL(标准模板库)
C++中的STL标准模板库STL(Standard Template Library):是一套功能强大的C++模板类,提供了通用的模板类和函数,它们可以实现多种流行和常用的算法及数据结构,比如向量、链表、队列、栈。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。 为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软件的可复用性。组成的库来说提供了更好的代码重用机会。在C++标准中,STL被组织为下面的13个头文件:<algorithm>、<deque>转载 2020-06-05 17:02:33 · 446 阅读 · 0 评论 -
编程题:字符串循环左移(ROL)
题目描述:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!分析:用的是最简单以理解的方法,先将str的后k-len个字符输入到结果字符串,然后再将前k个字符输入到结果字符串。class Solution {public: string LeftRot原创 2020-06-04 12:04:48 · 1727 阅读 · 0 评论 -
简要说明C++和C的区别
区别1:解决问题的思想方法不一样C语言时面向过程的程序设计,主要的核心为数据结构和算法,具有高效的特性。C语言的程序设计主要考虑如何通过一个过程来输入进行处理得到一个输出。C++是面向对象的程序设计,首先考虑的是如何构造一个对象模型,让这个模型配合相对应的问题,通过获取对象的状态信息来得到输出或实现控制。所以,C和C++的主要区别就是解决问题的思想方法不一样。区别2:C++相对于C来说是有增强的C++相对于C来说的增强主要体现在如下几方面:(1)功能扩充:register关键字、struct、b原创 2020-06-04 11:32:55 · 5223 阅读 · 0 评论 -
变态跳台阶问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法?
编程题一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法?分析对于n级台阶,第一步的跳法有n种:跳1级、跳2级、跳3级…跳n级跳1级,剩下的n-1级的跳法是f(n-1);跳2级,剩下的n-2级的跳法是f(n-2);跳3级,剩下的n-3级的跳法是f(n-3);…跳n-1级,剩下的1级的跳法是f(1);跳n级,剩下的0级的跳法是f(0)=0;所以f(n) = f(n-1)+f(n-2)+…+f(1)而f(n-1) = f(n-2)+原创 2020-06-04 10:48:51 · 1924 阅读 · 0 评论 -
leecode237—— 删除链表中的节点
题目描述:请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:说明:链表至少包含两个节点。链表中所有节点的值都是唯一的。给定的节点为非末尾节点并且一定是链表中的一个有效节点。不要从你的函数中返回任何结果。分析:无需定义链表,因为给的参数就只有要删除的这个节点指针。题目中是非尾节点,但有可能为头结点,需要注意 。链表不可能为空,因为至少包含了两个节点。整个删除思想就是:先定义一个节点是原创 2020-06-03 15:42:57 · 152 阅读 · 0 评论 -
键指offer——面试题6:从尾到头打印链表+链表知识复习
周一原创 2020-06-01 22:04:53 · 174 阅读 · 0 评论 -
十大经典排序算法之 —— 二、快速排序+算法图解第四章(快排、大O表示法)
第四章 快速排序4.1分而治之4.2 快速排序def QuickSort(array): if len(array) < 2: return array;#基线条件,为空或者只包含一个元素是“有序”,直接返回 else: pivot = array[0]#递归条件 less = [i for i in array[1:] if i<=pivot]#由小于基准值的所有元素组成的数组 greater = [i fo原创 2020-05-31 10:34:02 · 521 阅读 · 0 评论 -
LeeCode 198——打家劫舍,求数组中不相邻的数的最大和
题目描述:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。输入: [2,7,9,3,1]输出: 12输入: [1,2,3,1]输出: 4分析:我最开始的思想就是求一个数组中的奇数和与偶数和,看哪个比较大,然后没有AC,所以看了评论用动态规划。还没好好理一原创 2020-05-30 16:41:48 · 346 阅读 · 0 评论 -
深信服——字符串模糊匹配
一、字符串模糊匹配题目描述:从字符串string开始完整匹配子串sub,返回匹配到的字符个数。sub中如果出现’?‘表示可以匹配一到三个除’\0’以外的任意字符。如果sub还有找不到匹配的字符,则说明不能完整匹配。如果能完整匹配,返回匹配到的字符个数,如果有多种匹配方式,返回匹配字符数最少的那个,如果不能完整匹配,返回-1。输入描述:第一行输入字符串string,长度小于10000第二行输入子串sub,长度小于100输出描述:从string开头位置完整匹配sub,匹配到的字符个数。注意这原创 2020-05-28 11:14:05 · 884 阅读 · 1 评论 -
C++基础复习:各种基础函数——函数的重载、调用与声明、递归函数、内置函数、函数模板、变量存储方法类别、构造函数、析构函数、虚函数、this指针、
前言我想总结这些常见的特殊函数类型函数的重载函数的重载(founction overloading) 定义:C++允许同一函数名定义多个函数,而这些函数的参数个数和参数类型可以不相同,这就是函数的重载。 即对一个函数名重新赋予它新的含义,使得一个函数名可以多用。所谓重载,其实就是“一物多用”。 不仅函数可以重载,运算符也可以重载。例如>>和<<,既可以作为移位运算符也可以作为输入输出流中的插入运算符和数据输入流中的提取运算符。函数的重载并不要求函数体是相同的。重载函数除了允许原创 2020-05-28 11:08:26 · 931 阅读 · 0 评论 -
十大经典排序算法之 —— 一、冒泡排序
冒泡排序冒泡排序(Bubble Sort):它重复的走访过要排序的数列,每次比较两个元素,如果他们的顺序错误就将这两个数交换过来。走访数列的工作是重复的进行直到没有再需要交换,也就是排序已经完成。外层循环是因为总共要比较len次,内层循环是每次比较的值范围限制到len-1-i。算法名字“冒泡”的由来就是越小的元素会因为交换而慢慢的“浮”到数列的顶端。每回比较都得到一个最大值,因此内循环的限制条件应该是j<len-1-i;,因为循环到第i次会得到了i个最大值已经是被排好顺序的。C代码:原创 2020-05-27 18:38:21 · 357 阅读 · 0 评论 -
键指offer——面试题11:旋转数组的最小数字(p79-p87)
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。分析:二分查找法:让两个指针分别指向数组的第一个元素和最后一个元素。按照题目中的规则就是第一个元素应该是大于或等于最后一个元素的。我们以数组{3, 4, 5, 1, 2}为例。首尾指针的移动过程如图所示,不断循环,直到最终两个指针的距离为1时,表明第一个指针已经指向第一个递增原创 2020-05-25 21:17:36 · 170 阅读 · 0 评论 -
LeeCode 50——Pow(x, n),求x的n次方
题目描述: 实现 pow(x, n) ,即计算 x 的 n 次幂函数。C代码:double myPow(double x, int n){ if(n == 0) return 1; //n为奇数,递归实现 else if(n % 2 == 1) return myPow(x, n-1) * x; else if(n % 2 == -1) return myPow(x, n+1) * (1/x); //n为偶数,结果原创 2020-05-22 21:20:37 · 1083 阅读 · 0 评论 -
手撕题5——相似
题目描述:两个数是相似的,当且仅当他们位与起来不为0。例如,3和5是相似的,因为3的二进制为011,5的二进制为101,他们位与起来为001不为0。现在,给出序列a1,a2…an我们希望你找出,对于任意的i∈[1,n],是否存在j∈[1,n],使得ai,aj不相似。输入输入第一行包括一个整数n,代表序列a的长度接下来一行n个数,空格隔开,代表序列a1<=n<=100000,1<=ai<=106输出输出n个数。如果对于i个数,存在j∈[1,n],使得ai,aj不相似,原创 2020-05-20 21:57:35 · 275 阅读 · 1 评论 -
美团研发岗笔试真题练习(编程题3)——队列组合排序
题目描述一个班级男生和女生数量相同,老师要求男生女生进行排队,男生全部排在队列前面,女生紧跟着排在男生队列后面,形成一个队列,现在要求男生女生交叉排列并且第一位是男生,且每个人在在原队列中的顺序不变,如何来做?要求:交叉前:队列[男1,男2,男3,男4…男n,女1,女2,女3,女4…女n]交叉后:队列[男1,女1,男2,女2,男3,女3,男4,女4…男n,女n]输入描述:输入第一行一个整数 n 表示有 n 个男生和 n 个女生第 2 到第 n+1 行每一行有一个数字表示每个男生的编号第 n+原创 2020-05-19 09:56:52 · 798 阅读 · 0 评论 -
美团研发岗笔试真题练习(编程题2)——字符串查找
题目描述小美和小团在玩一个游戏,小美任意给出一个大字符串str1以及一个独立的小字符串str2,小团需要从这个大字符串str1里找到包含独立小字符串str2中所有字符的最小子字符串str3;例如,小美给出一个大字符串"meituan2019"和一个子字符串"i2t",那么小团给出的答案就应该是"ituan2";需要注意:1、str1中有可能没有完整包含str2所有字符的情况,此时返回"",即为空字符串;2、str1不会为空,但str2有可能为空,此时返回整个str1;3、str2可能存在重复的字原创 2020-05-19 08:47:55 · 1925 阅读 · 0 评论 -
手撕题4——拆分
题目描述:给定长度为n的串S,仅包含小写字母。定义公式中,|A|代表字符串A的长度也就是说如果子串是一个ABA型的字符串,且满足长度限制,则f(l,r)=1,否则等于0。(注意:形如“ababab”也可视为ABA型)例如当n=2时,原式为f(1,1)+f(1,2)+f(2,2)。输入第一行一个字符串S第二行一个数字k输出输出题目描述中式子的值样例输入abcabcabc2样例输出8提示1<=n<=2000 , S[i]为小写字母样例解释:在这个字符串中,有f原创 2020-05-18 20:35:10 · 426 阅读 · 0 评论