![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 53
颜值博主
这个作者很懒,什么都没留下…
展开
-
C++动态内存分配
malloc内存分配:malloc是动态内存申请函数,其会根据申请空间的大小来调用brk()、mmap()来实现虚拟内存空间的分配。其中brk()、mmap()是系统调用。malloc和mmap等内存分配函数只是建立进程的虚拟地址空间,并没有分配实际的物理内存。当进程访问没有建立映射关系的虚拟内存时会自动的触发一个缺页中断。缺页中断:当一个进程发生缺页中断的时候,进程会陷入内核态,执行以下操作检查要访问的虚拟地址是否合法查找/分配一个物理页填充物理页内容(读取磁盘,或者直接置0,或者啥也不干原创 2021-05-12 21:26:38 · 449 阅读 · 1 评论 -
求素数的几种方法
首先介绍以下素数的定义素数,也称为质数,其只能被1或者自身整除的自然数(不包括1)。换而言之,只有两个正因数的自然数称为素数。与之相对的比1大但不是素数的自然数称为合数。1和0既不是素数也不是合数,合数由若干个质数相乘得到。基础方法:显然根据定义就能判断一个数N是否为素数,具体的,对其从2到sqrt(N)进行除法,判断是否存在余数为0的情况,存在即认为N为合数,否则即为素数(这里临界的根号N是因为,对于N=p×q,显然p和q至少有一个小于根号N)。bool prime(int.原创 2020-08-13 20:28:12 · 4365 阅读 · 0 评论 -
多态的简单理解
所谓多态(Polymorphism),按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(摘自“Delphi4编程技术内幕”)。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。多态性在Object Pascal和C++中都是通过虚函数(Virtual Function) 实现.原创 2020-06-09 16:45:24 · 1825 阅读 · 0 评论 -
C++ Map的基本操作
首先是find函数的应用map<int, int>roomif(room.find(5) == room.end()) room[5] = 1;else room[5] = room[5] + 1;对于迭代器应用:for (map<int, int>::iterator it = room.first(); it != room.end(...原创 2020-03-29 12:28:21 · 116 阅读 · 0 评论 -
438. 找到字符串中所有字母异位词(Leetcode)
给定一个字符串s和一个非空字符串p,找到s中所有是p的字母异位词的子串,返回这些子串的起始索引。字符串只包含小写英文字母,并且字符串s和 p的长度都不超过 20100。说明:字母异位词指字母相同,但排列不同的字符串。不考虑答案输出的顺序。示例1:输入:s: "cbaebabacd" p: "abc"输出:[0, 6]解释:起始索引等于 0 的...原创 2020-02-15 18:25:04 · 156 阅读 · 0 评论 -
(腾讯笔试)01背包
#include <cstdio> #include <iostream> #include <algorithm> #include <sstream> #include <vector>#define N_MAX 205#define INF (0x3f3f3f3f)using namespace...原创 2019-12-13 10:03:34 · 189 阅读 · 0 评论 -
携程2019.9.4笔试:任务调度(反向松弛)
一次遍历求出所有加和为SUM,然后在遍历一遍将其分为N个区间。前N - 1个区间的和都小于等于SUM/N,保证最大的和为第N个区间,再进行反向松弛操作,保证每一次松弛后的区间最大值(即最短耗时)比松弛前少,直到无法继续松弛,则区间最大值(即最短耗时)即为输出。 该结果没有验证,如果思路没错的话,当数据太大可能会因为SUM超出大小限制,可以修改为前N ...原创 2019-09-04 21:12:00 · 193 阅读 · 0 评论 -
小Q学习状态
题目要求找到数组中某一段最小值与该段所有值和的乘积的最大值。利用动态规划,将问题分解为将数组截取三段,取其最大值,分别为全部值、去掉数组最小值后左半部分、去掉数组最小值右左半部分。AC80,超时#include <map> #include <cmath> #include <queue> #include <cstd...原创 2019-12-13 10:01:54 · 120 阅读 · 0 评论 -
鹅厂下午茶
以ai - bi的值作为排序,差值越大说明放在前面的性价比就越高,值得注意的是测试用例比较刁钻,结果和a,b定义为int类型是无法通过的,改成long long 类型就AC了。#include <map> #include <cmath> #include <queue> #include <cstdio> ...原创 2019-12-13 10:02:50 · 151 阅读 · 0 评论 -
钥匙和锁
只有偶数加奇数的和才为奇数,因此只要分别计算出宝箱和钥匙的偶数个数,取宝箱奇数和钥匙偶数的最小值与宝箱偶数和钥匙奇数的最小值之和即为解。#include <map> #include <cmath> #include <queue> #include <cstdio> #include <string>...原创 2019-12-13 10:02:20 · 185 阅读 · 0 评论 -
腾讯笔试:小Q的歌单
时间限制:1秒空间限制:32768K小Q有X首长度为A的不同的歌和Y首长度为B的不同的歌,现在小Q想用这些歌组成一个总长度正好为K的歌单,每首歌最多只能在歌单中出现一次,在不考虑歌单内歌曲的先后顺序的情况下,请问有多少种组成歌单的方法。输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含一个整数,表示歌单的总长度K(1<=K<=1000)。接下来的一行包含...原创 2019-09-01 17:31:27 · 129 阅读 · 0 评论 -
腾讯笔试:贪吃的小Q
时间限制:1秒空间限制:32768K小Q的父母要出差N天,走之前给小Q留下了M块巧克力。小Q决定每天吃的巧克力数量不少于前一天吃的一半,但是他又不想在父母回来之前的某一天没有巧克力吃,请问他第一天最多能吃多少块巧克力输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含两个正整数,表示父母出差的天数N(N<=50000)和巧克力的数量M(N<=M<=10...原创 2019-09-01 15:55:55 · 111 阅读 · 0 评论 -
华为2018年9月笔试第一题
#include <map> #include <cmath> #include <queue> #include <cstdio> #include <string> #include <cstring> #include <iostream> #include <a原创 2018-09-05 21:00:59 · 972 阅读 · 0 评论 -
链表相应操作
链表#include <map> #include <cmath> #include <queue> #include <cstdio> #include <string> #include <cstring> #include <iostream> #include &l原创 2018-09-20 15:54:57 · 126 阅读 · 0 评论 -
(BFS)
对于这个题的思路主要是BFS,从头开始分别对三个操作进行使用,直到最后需要操作的两个字符串相等或都为空,需要注意的是在两个字符串长度不等但开头的部分相等,例如A = casfg,B = ca,在这种情况下只能进行第一个操作,而对于A = ca,B = casfg,这时只能进行插入字符操作。具体代码如下:#include <map> #include <...原创 2019-04-10 16:04:45 · 248 阅读 · 0 评论 -
2019年四月百度笔试编程
#include <map> #include <cmath> #include <queue> #include <cstdio> #include <string> #include <cstring> #include <iostream> #include <algor...原创 2019-04-03 08:52:38 · 134 阅读 · 0 评论 -
DFS对矩阵分类
通过DFS找到矩阵中相邻的‘o',并将其分为一类输入:5 5 X O O X O X X O O X O X O X O X X X X O O X X X O输出:0 1 1 0 20 0 1 1 03 0 1 0 40 0 0 0 45 0 0 0 4#include...原创 2019-07-30 08:32:40 · 160 阅读 · 0 评论 -
大疆创新 2020校招 软件类岗位A卷 应该吃哪个呢(多重有限背包问题)
这道题是一个多重背包问题,将其转化为01背包后既可以解出。#include <iostream>#include<iomanip>#define INF (0x3f3f3f3f)using namespace std;int Price[2001], Manyi[2001]; //100*20int Data[2001][1000...原创 2019-08-05 11:25:40 · 946 阅读 · 0 评论 -
二叉树学习
引自百度百科:在计算机科学中,二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。 一棵深度为k,且有2^k-1个节点的二叉树,称为满二叉树。这种树的特点是每一层上的节点数都是最大节点数。而在一棵二叉树中,除最后一层外,若其余层都是满的...原创 2019-08-05 16:13:55 · 161 阅读 · 0 评论 -
ACM 1273(网络最大流)
描述每当农场约翰的田地下雨时,一个池塘形成了贝西最喜欢的三叶草补丁。这意味着三叶草被水覆盖了一段时间并且需要相当长的时间才能再生。因此,Farmer John建造了一套排水沟,以便Bessie的三叶草补丁永远不会被水覆盖。相反,水被排放到附近的溪流中。作为一名王牌工程师,Farmer John还在每个沟渠的开始安装了调节器,因此他可以控制水流入该沟渠的速度。农民约翰不仅知道每个沟渠每分钟...原创 2019-08-07 18:58:41 · 287 阅读 · 0 评论 -
大小切换问题
#include "pch.h"int main(){ int N; cin >> N; string s; cin >> s; int count = 0, Flag = 0; for (int i = 0; i < N; ++i) { //cout << s[i] << endl; if (s[i] &...原创 2019-08-25 10:13:32 · 129 阅读 · 0 评论 -
腾讯笔试:翻转数列
时间限制:1秒空间限制:32768K小Q定义了一种数列称为翻转数列:给定整数n和m, 满足n能被2m整除。对于一串连续递增整数数列1, 2, 3, 4..., 每隔m个符号翻转一次, 最初符号为'-';。例如n = 8, m = 2, 数列就是: -1, -2, +3, +4, -5, -6, +7, +8.而n = 4, m = 1, 数列就是: -1, +2, -3, + 4....原创 2019-09-01 14:29:06 · 279 阅读 · 0 评论 -
腾讯笔试:纸牌游戏
时间限制:1秒空间限制:32768K牛牛和羊羊正在玩一个纸牌游戏。这个游戏一共有n张纸牌, 第i张纸牌上写着数字ai。牛牛和羊羊轮流抽牌, 牛牛先抽, 每次抽牌他们可以从纸牌堆中任意选择一张抽出, 直到纸牌被抽完。他们的得分等于他们抽到的纸牌数字总和。现在假设牛牛和羊羊都采用最优策略, 请你计算出游戏结束后牛牛得分减去羊羊得分等于多少。输入描述:输入包括两行。第一行...原创 2019-09-01 14:43:41 · 332 阅读 · 0 评论 -
华为2018年九月笔试第三题
#include <map> #include <cmath> #include <queue> #include <cstdio> #include <string> #include <cstring> #include <iostream> #include <al原创 2018-09-05 20:58:35 · 508 阅读 · 0 评论