自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 C++11新特性部分总结

一、C++11相对C++98显著变化C++11的特性改变了书写C++代码的风格和习惯,也改变了设计C++库的方式。例如,你会看到更多的被当作参数和返回值的智能指针,用初始化列表初始化。C++11相对于C++98有什么显著增强呢?通过统一初始化表达式、auto、declytype、移动语义等来统一对泛型编程的支持。 通过constexpr、POD更好支持系统编程 通过内存模型、线程、...

2019-06-17 21:44:11 184

原创 面试题:正则表达式匹配

题目描述请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配。分析(1)特殊情况检查(2)*(pattren+1)=='*': ...

2019-06-17 13:17:30 198

原创 面试题:求1+2+3+...+n

题目描述求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)分析:分析利用构造函数来累加N和sum,每构造一个变量就执行一次构造函数 利用虚函数。!!n来判断是否为零。n非零为true,调用父类虚函数,零为false,调用子类虚函数。 利用函数指针,同上 利用模板,将0或1特例化。 利用...

2019-06-13 13:59:48 467

原创 面试题:不用加减乘除做加法

题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。分析将思路转向位运算,按照加法进位来思考代码:class Solution {public: int Add(int num1, int num2) { int sum,carry; do{ sum=num1^num2...

2019-06-13 13:40:12 102

原创 面试题:孩子们的游戏(圆圈中最后剩下的数)

题目描述每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去.....

2019-06-13 10:28:09 116

原创 各厂面试经历

目录** 动态库与静态库的区别** gcc如何加载动态库、静态库** 数据库查询优化方法** Linux下进程内存分段以及分别存储什么** vector如何扩展内存和释放内存** 浏览器访问vivo.com的过程**简单说下多线程(常用函数和锁说下)** 定义一个数据结构保证多个线程读写的线程安全。** 冒泡算法的优化** 大量数据读写,数据的修改尽量...

2019-06-12 13:37:42 625

原创 面试题:数组中只出现一次的两个数

题目描述:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。分析:合理使用位运算,两个相同的数字求异或,结果为0代码:class Solution {public: void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) { if...

2019-06-05 11:07:24 365

原创 面试题:平衡二叉树

题目描述:输入一棵二叉树,判断该二叉树是否是平衡二叉树分析:合理设计函数参数,记录树的深度,避免搜索重复节点。代码:class Solution {public: bool IsBalanced_Solution(TreeNode* pRoot) { int depth=0; return IsBalanced(pRoot,depth...

2019-06-05 10:28:17 417

原创 面试题 数组中的逆序对

题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007分析1.如果对每一个数字,依此查找它前面的所有数字,复杂度为O(n2);2.结合归并排序的思想,复杂度为O(nlogn).3.用long long防止溢出代码...

2019-06-03 15:26:00 88

原创 面试题:丑数

题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。分析用数组来保存求过的丑数,后面的丑数等于前面的丑数乘于2 3 5。代码class Solution {public: int GetUglyNumber_Solution(in...

2019-05-27 11:31:50 152

原创 面试题:最小K个数

题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。解法一:基于Partition函数的O(n)算法。缺点:修改数据解法二:基于最大堆或红黑树(set)的O(nlogk)的解法。适合海量数据class Solution {public: vector<int> GetLeastNu...

2019-05-15 17:56:01 106

原创 面试题:数组中出现次数超过一半的数字

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。解法一:基于Partition函数的O(n)方法这种方法相当于求“第n/2大的数字”。class Solution {public: void swap(...

2019-05-15 11:08:22 131

原创 面试题:树的子结构

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构分析:应该有两个递归:递归一:依此检查两棵树的是不是相同(包含) 递归二:一次以A树的每个节点为根,与B进行递归一的检查代码:/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *rig...

2019-04-28 10:48:51 84

原创 细节处理&技巧

(1)检查空指针。如剑指offer15题,求链表中倒数第k个节点。要注意检查第一个指针。while(k--){ if(p1!=NULL){ p1=p1->next; }else return NULL; }...

2019-04-25 11:46:27 116

原创 面试题11:数值的整数次方

题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。分析:指数可能为负数和0,注意0的0次方要提醒输入错误; 用递归解法可以在O(logn)的复杂读求一个数的正数次方 用fabs(a,b)<1e-15(1e-6)比较浮点数是否相等代码:class Solution {public: doubl...

2019-04-25 11:05:27 100

原创 leetcode 50. Pow(x, n)

题目:Implement pow(x, n), which calculatesx raised to the power n (xn).Example 1:Input: 2.00000, 10Output: 1024.00000Example 2:Input: 2.10000, 3Output: 9.26100Example 3:Input: 2.00...

2019-04-12 11:07:07 70

原创 leetcode 29. Divide Two Integers

题目Given two integers dividend and divisor, divide two integers without using multiplication, division and mod operator.Return the quotient after dividing dividend by divisor.The integer division...

2019-04-11 11:09:46 88

原创 leetcode 12. Integer to Roman

题目:Roman numerals are represented by seven different symbols:I, V, X, L, C, D and M.Symbol ValueI 1V 5X 10L 50C 100D ...

2019-04-10 21:25:04 73

原创 leetcode 8. String to Integer (atoi)

题目:8. String to Integer (atoi)Medium8685565FavoriteShareImplement atoi whichconverts a string to an integer.The function first discards as many whitespace characters as necessary until the ...

2019-04-08 11:33:05 78

原创 leetcode 7. Reverse Integer

题目:Given a 32-bit signed integer, reverse digits of an integer.Example 1:Input: 123Output: 321Example 2:Input: -123Output: -321Example 3:Input: 120Output: 21Note:Assume we are...

2019-04-04 15:22:31 101

原创 leetcode 94. Binary Tree Inorder Traversal

题目:Given a binary tree, return the inorder traversal of its nodes' values.Example:Input: [1,null,2,3] 1 \ 2 / 3Output: [1,3,2]Follow up: Recursive solution is trivial, co...

2019-04-04 14:09:54 61

原创 1 关于对象(深入探索C++对象模型)

C++在加入封装后(只含有数据成员和普通成员函数)的布局成本增加了多少?答案是并没有增加布局成本。就像C struct一样,memeber functions虽然含在class的声明之内,却不出现在object中。每一个non-inline member function只会诞生一个函数实体。至于每一个“拥有零个或一个定义的” inline function则会在其每一个使用者(模块)身上产生...

2019-04-03 20:36:43 198

原创 leetcode 90. Subsets II

题目:Given a collection of integers that might contain duplicates, nums, return all possible subsets (the power set).Note: The solution set must not contain duplicate subsets.Example:Input: [1,...

2019-03-26 21:26:09 55

原创 leectcode 75.Sort Colors

题目Given an array with n objects colored red, white or blue, sort them in-placeso that objects of the same color are adjacent, with the colors in the order red, white and blue.Here, we will use th...

2019-03-25 13:46:33 81

原创 leetcode 95. Unique Binary Search Trees

题目Given n, how many structurally unique BST's (binary search trees) that store values 1 ...n?分析:这个题的思想和《算法导论》上的“矩阵链乘法”和“钢条割据问题”非常类似!代码一:100.00% 5.38%自底而上的动态规划。class Solution {public: ...

2019-03-21 10:24:36 40

原创 leetcode 10. Regular Expression Matching(动态规划)

题目Given an input string (s) and a pattern (p), implement regular expression matching with support for '.' and '*'.'.' Matches any single character.'*' Matches zero or more of the preceding el...

2019-03-19 18:06:46 152

转载 算法技巧总结

1. 巧用数组下标2. 巧用取余3. 巧用双指针4. 巧用移位运算。5. 设置哨兵位6. 与递归有关的一些优(1)对于可以递归的问题考虑状态保存(2)自底向上总结一下当你在使用递归解决问题的时候,要考虑以下两个问题(1). 是否有状态重复计算的,可不可以使用备忘录法来优化。(2). 是否可以采取递推的方法来自底向上做,减少一味递归的开销。文章具体内容...

2018-11-22 15:37:06 70

原创 leetcode刷题计划(一)(11.19-11.25)

目录 4. Median of Two Sorted Arrays128. Longest Consecutive Sequence  1. Two Sum15. 3Sum16. 3Sum Closest4. Median of Two Sorted ArraysThere are two sorted arrays nums1 and nums2 of size ...

2018-11-22 14:34:41 307

原创 new/delete和malloc/free用法与区别

1 new / delete1.1 new/delete表达式(操作符)表达式的使用如下:string *sp=new string("aaaa");string *arr=new string[10];delete sp;delete [] arr;以上的new表达式(操作符)在使用时共经历了三步:分配内存、构造(初始化)对象、返回指针。以上的delete表达式(操作...

2018-10-25 12:23:29 89

原创 回文串和镜像串

输入一个字符串,判断它是否为回文串以及镜像串,输入的字符串保证不含数字0,回文串就是反转后与原串相同,例如abba等,镜像串就是左右镜像之后与原串相同,例如2S,但并不是每个字符都在镜像后有合法的字符串与之对应。镜像图略。分析:回文串和镜像串的判断一起完成,使用常量数组解决,本人使用string类来完成#include&lt;iostream&gt;#include&lt;stri...

2018-10-09 21:45:26 513

原创 STL源码解析(三)

iterator需要遵循的原则每个Iterator都得有一个类 Iterator必须回答算法的问题,跟容器相关的五个类型:iterator_category, difference_type, value_type, conferece, pointeriterator traits用于分离class iterators 和non-class iterators  容器vector...

2018-10-09 12:46:32 241

原创 数字处理小技巧整理(持续更新)

将一个size_t类型的数上调至8的倍数这个用法见与SGI STL的第二级空间配置器构建中,内存需求量不够8的倍数bytes的上调至8的倍数enum{__ALLGN=8};size_t Round_up(size_t bytes){ return(((bytes)+__ALLGN-1)&amp;~(__ALLGN-1));} ...

2018-10-09 11:34:00 107

原创 union节省内存的类

1.基本概念   Union是一种特殊的类,也是一种构造类型的数据结构。在Union中,所有的共用体成员共用一个空间,并且同一时间只能储存其中一个成员变量的值。 2.与struct的区别 1.union和struct都是由多个不同的数据类型成员组成。但在任何同一时刻,union只存放了一个被选中的成员,而struct的所有成员都存在。2.对于union的不同成员赋值, 将会...

2018-10-09 11:24:17 233

原创 STL源码剖析(二)

opp(Object-Oriented Programming)vs GP(Generic Programming)OPP:企图将datas和methods分开来 GP:企图将datas和methods分开来 分开的好处:(1)containers和algorithms可各自闭门造车,其间以Iterator为媒介。(2)algorithms通过iterators确定操作范围,并通过i...

2018-09-27 18:09:40 99

原创 STL源码剖析(一)

容器结构与分类(1)Sequence ContainersArray, Vector, Deque, List, Forward-List(2)Associative ContainersSet/Multiset(用红黑树实现), Map/Multimap(3)Unordered Containers(可以归纳为第2种) (用HashTable实现)Unordere...

2018-09-27 17:06:28 102

原创 第 15章 面向对象程序设计(一)

基类和派生类的头文件及cpp文件结构以Quote基类和Bulk_quote派生类为例,记录头文件和cpp文件的构成。目录基类和派生类的头文件及cpp文件结构Quote.hQuote.cppBulk_quote.hBulk_quote.cppmain.cppQuote.h#ifndef QUOTE_H#define QUOTE_H#include&lt;...

2018-09-25 16:54:57 103

原创 蛇形填数 P39

在n*n方阵里填入1,2,...n*n,要求填成蛇形。如下10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 【分析】用四个while循环模拟四个方向,做好边界判断和非零判断。#include&lt;stdio.h&gt;#include&lt;string.h&gt;...

2018-09-20 14:57:14 112

原创 开灯问题 P39

有n盏灯,编号1~n 。第一个人把所有灯点亮 ,第2个人按下所有编号为2的倍数的灯开关,第3人按编号为3的灯的倍数的灯的开关,依次k个人按下开关(其中关的灯被打开,开的灯被熄灭),求最后哪些灯开着?k&lt;=n&lt;=1000。【分析】用数组直接模拟操作即可。#include&lt;stdio.h&gt;#include&lt;string.h&gt;const int ma...

2018-09-20 13:18:33 193

原创 VS2017+QT开发环境配置

环境配置参考链接 https://blog.csdn.net/qq_33154343/article/details/78587699Qt5.9.2的链接:http://mirrors.ustc.edu.cn/qtproject/archive/qt/5.9/5.9.2/qt-opensource-windows-x86-5.9.2.exe怎样安装Qt5.9,步骤描述:http://blo...

2018-09-20 10:13:55 10820

原创 《Effective C++》读书笔记:(一)让自己习惯C++

条款01:四个次语言:C、Object-Oriented C++、Template C++(泛型和模板元编程)、STL 条款02:用inline、enum、const代替#define#define定义的宏,复杂起来,就会很难理解。(1)对于单纯常量,最好以const对象代替#defines。class CostEstimate{private: static con...

2018-09-19 17:13:51 74

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除