![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++编程
文章平均质量分 54
OH,CGWLMXUP
这个作者很懒,什么都没留下…
展开
-
海量数据处理方法论总结
目录第一部分、十道海量数据处理1、海量日志数据,提取出某日访问百度次数最多的那个IP。2、搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节3、有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M。返回频数最高的100个词。4、有10个文件,每个文件1G,每个文件的每一行存放的都是用户的query,每个文件的query都可能重复。要求你按照query的频度排序。5、 给定a、b两个文件,各存放50.原创 2021-04-13 13:26:15 · 382 阅读 · 0 评论 -
算法LeetCode解题(C++)-19. 合并K个排序链表(难度:困难)
题目描述:合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6这道题让我们合并k个有序链表,最终合并出来的结果也必须是有序的,之前做过一道Merge Two S...原创 2019-11-15 16:32:12 · 215 阅读 · 0 评论 -
算法LeetCode解题(C++)-17. 有效的括号(难度:简单)
注意观察可以发现,后出现的左括号必须先匹配到自己对应的右括号才能符合,因此这里我首先想到的是遍历字符串,将左括号按顺序放入容器中,当遇到一个右括号的时候就匹配容器中的尾部左括号,匹配上则继续。否则返回false,这里需要注意的是第一个字符就是右括号的极端情况处理,容器可以采用vector、stack(栈,先进后出)都可以。vector代码实现如下:bool ValidParenthese...原创 2019-10-31 09:53:33 · 218 阅读 · 0 评论 -
算法LeetCode解题(C++)-16. 删除链表的倒数第N个节点(难度:中等)
题目描述:给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n保证是有效的。进阶:你能尝试使用一趟扫描实现吗?题目解析: 首先题目中说明了n保证有效,因此我们不需要...原创 2019-10-30 10:13:09 · 205 阅读 · 0 评论 -
算法LeetCode解题(C++)-15. 四数之和(难度:中等)
题目描述:给定一个包含n 个整数的数组nums和一个目标值target,判断nums中是否存在四个元素 a,b,c和 d,使得a + b + c + d的值与target相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求...原创 2019-10-30 09:08:38 · 302 阅读 · 0 评论 -
c++的std::move 原理实现与用法总结
C++11中,std::move存在于<utility>中,std::move函数可以很方便的将左值引用转换为右值引用(左值、右值、左值引用、右值引用等相关介绍可以参看:https://blog.csdn.net/xiaomucgwlmx/article/details/101346463)。实际上,std::move并不可以移动任何东西,唯一的功能就是上边说的将一个左值强制转化为右值...原创 2019-10-29 16:17:44 · 1029 阅读 · 1 评论 -
算法LeetCode解题(C++)-14. 电话号码的字母组合(难度:中等)
题目描述:给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd"...原创 2019-10-28 10:13:18 · 359 阅读 · 0 评论 -
算法LeetCode解题(C++)-10. 盛最多水的容器(难度:中等)
题目描述:给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下...原创 2019-10-18 09:34:42 · 211 阅读 · 0 评论 -
算法LeetCode解题(C++)-9. 正则表达式(难度:困难)
题目描述:给你一个字符串s和一个字符规律p,请你来实现一个支持 '.'和'*'的正则表达式匹配。'.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。说明:s可能为空,且只包含从a-z的小写字母。p可能为空,且只包含从a-z的小写字母,以及字符.和*。示例 1:输入:s = ...原创 2019-10-18 09:11:03 · 180 阅读 · 0 评论 -
算法LeetCode解题(C++)-8. 回文数(难度:简单)
题目描述:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。解法分析: 此题如果我们直接采用将输入转为字符串就太简单了,直接判断字符串是否回文就可以...原创 2019-10-17 10:05:15 · 227 阅读 · 0 评论 -
算法LeetCode解题(C++)-7. 字符串转换整数 (atoi)(难度:中等)
题目描述:请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字...原创 2019-10-15 11:10:46 · 214 阅读 · 0 评论 -
算法LeetCode解题(C++)-6. 整数反转(难度:简单)
题目描述:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231,231− 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。刚开...原创 2019-10-15 10:04:56 · 178 阅读 · 0 评论 -
算法LeetCode解题(C++)-5. 最长回文子串(难度:中等)
题目描述:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"什么是回文串? 就是正读反读都一样的字符串,比如 "bob", "level", "noon" 等等。解题方法: ...原创 2019-10-12 19:14:40 · 274 阅读 · 0 评论 -
详解Unicode 编码
ASCII码在学校学 C 语言的时候,了解到一些计算机内部的机制,知道所有的信息最终都表示为一个二进制的字符串,每一个二进制位有 0 和 1 两种状态,通过不同的排列组合,使用 0 和 1 就可以表示世界上所有的东西,感觉有点中国“太极”的感觉——“太极生两仪,两仪生四象,四象生八卦”。在计算机种中,1 字节对应 8 位二进制数,而每位二进制数有 0、1 两种状态,因此 1 字节可以组合出...原创 2019-08-12 15:00:52 · 239 阅读 · 0 评论 -
2019年技术进阶路线
一、音视频方向学习路线:音视频基础知识 -> H.264原理(sps pps NAL)+应用 -> YUV(YUV原理 + 到RGB的转换) -> webrtc音频处理 -> SDL。短期目标:完成播放器开发。二、Java方向学习路线:Java基础知识 -> JavaScript -> 数据库sql -> 部分框架。短期目标:可以完成简单...原创 2019-03-13 18:19:09 · 247 阅读 · 0 评论 -
QT获取cpu使用率
double getCpuUsage(){#ifdef Q_OS_WIN static FILETIME s_preIdleTime = { 0, 0 }; static FILETIME s_preKernelTime = { 0, 0 }; static FILETIME s_preUserTime = { 0, 0 }; static bool isFi...原创 2018-09-12 09:31:39 · 5358 阅读 · 2 评论 -
curl介绍和应用
curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。 一、最新版本你可以在官网上了解到curl的开发的最新情况,并下载到最新版本的程序。二、相对简单的用法1、从Netscape的网页服务器上获得该网站的主页:curl http://www.netscape.com/...转载 2018-09-12 09:44:06 · 202 阅读 · 0 评论 -
关于C++ const 的全面总结
C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、Const作用 如下表所示: No. 作用 说明 ...转载 2018-09-07 10:07:20 · 84 阅读 · 0 评论 -
大端模式与小端模式
大端模式所谓的大端模式(Big-endian),是指数据的高字节,保存在内存的低地址中,而数据的低字节,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;例子:0000430: e684 6c4e 0100 1800 53ef 0100 0100 00000000440: b484 6c4e 004e ed00 0000 00...原创 2018-09-11 10:21:34 · 168 阅读 · 0 评论 -
HTTPS和HTTP的区别
HTTPS和HTTP的区别1、简介超文本传输协议HTTP被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS...原创 2018-09-11 10:22:30 · 262 阅读 · 0 评论 -
C语言基础---int、float、short、double等(占字节)
#include "iostream"using namespace std;int main(){ cout<<sizeof(char)<<endl; cout<<sizeof(short)<<endl; cout<<sizeof(int)<<endl; cout<&a原创 2018-10-01 09:42:02 · 2091 阅读 · 0 评论 -
算法LeetCode解题(C++)-3. 无重复字符的最长子串(难度:中等)
题目描述:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为...原创 2019-01-19 10:25:26 · 2047 阅读 · 0 评论 -
算法LeetCode解题(C++)-1. 两数之和(难度:简单)
题目描述:给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]...原创 2019-01-15 18:05:22 · 218 阅读 · 0 评论 -
算法LeetCode解题(C++)-2. 两数相加(难度:中等)
题目描述:给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -&...原创 2019-01-15 19:19:26 · 976 阅读 · 0 评论 -
算法LeetCode解题(C++)-4. 寻找两个有序数组的中位数(难度:困难)
题目描述:给定两个大小为 m 和 n 的有序数组nums1和nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为O(log(m + n))。你可以假设nums1和nums2不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3,...原创 2019-02-22 15:25:56 · 1767 阅读 · 0 评论 -
使用VLD进行内存泄漏检测(release + debug)
VLD(Visual Leak Detector)是一款用于VisualC++的免费内存泄漏检查工具。功能: 1) 可以得到内存泄漏点的调用堆栈,还可以得到其所在的文件及行号; 2) 可以得到泄漏内存的完整数据; 3) 恶意设置内存泄漏报告的级别; 4) 它以动态库的形式提供,无需编译源代码,只需要很小的改动程序; 5) 源代码使用...原创 2019-02-18 17:18:10 · 3596 阅读 · 0 评论 -
QT C++和HTML通信
摘要在QT中和HTML进行通信通过websocket转载请声明原创地址哟。PS:对这块不熟有错误请指出这换行有毒,谅解。概述: C++和HTML通过websocket通信,通过官方的qwebchannel.js实现。 C++和HTML共用一个对象并以此进行通信 C++通知HTML:通过信号 HTML通知C++:直接调用其函数 核心类:QWebChannel QT版本:5.6...转载 2019-03-01 10:24:47 · 716 阅读 · 0 评论 -
QT获取CPU型号
QString getCpu(){ static QString model = "";#ifdef Q_OS_WIN if (model.isEmpty()) { std::array<int, 4> cpui; std::vector<std::array<int, 4>> extdata; ...原创 2018-09-12 09:30:36 · 1307 阅读 · 1 评论