自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(303)
  • 资源 (1)
  • 收藏
  • 关注

原创 倒置字符串

将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I 输入描述:每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超过100输出描述:依次输出倒置之后的字符串,以空格分割输入例子1:I like beijing.输出例子1:beijing. like I...

2018-08-26 13:02:00 1997

原创 删除公共字符

输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.” 输入描述:每个测试输入包含2个字符串输出描述:输出删除后的字符串输入例子1:They are students. aeiou输出例子1:Thy r stdnts....

2018-08-26 13:00:09 1056

原创 求和

输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来 输入描述:每个测试输入包含2个整数,n和m输出描述:按每个组合的字典序排列输出,每行输出一种组合输入例子1:5 5输出例子1:1 42 35#include <iostream>#include <...

2018-08-26 12:58:16 819

原创 n个数里出现次数大于等于n/2的数

输入n个整数,输出出现次数大于等于数组长度一半的数。 输入描述:每个测试输入包含 n个空格分割的n个整数,n不超过100,其中有一个整数出现次数大于等于n/2。输出描述:输出出现次数大于等于n/2的数。输入例子1:3 9 3 2 5 6 7 3 2 3 3 3输出例子1:3#include <iostream>#include &l...

2018-08-26 12:55:06 731

原创 n个数里最小的k个

找出n个数里最小的k个 输入描述:每个测试输入包含空格分割的n+1个整数,最后一个整数为k值,n不超过100。输出描述:输出n个整数里最小的k个数。升序输出输入例子1:3 9 6 8 -10 7 -11 19 30 12 23 5输出例子1:-11 -10 3 6 7#include <iostream>#include <...

2018-08-26 12:54:07 543

原创 字符串中找出连续最长的数字串

读入一个字符串str,输出字符串str中的连续最长的数字串 输入描述:个测试输入包含1个测试用例,一个字符串str,长度不超过255。输出描述:在一行内输出str中里连续最长的数字串。输入例子1:abcd12345ed125ss123456789输出例子1:123456789 #include <iostream>#includ...

2018-08-26 12:53:09 1290

原创 糖果谜题---网易游戏(互娱)-游戏测试开发工程师真题 题解

糖果谜题时间限制:1秒空间限制:32768K小明是幼儿园的一名老师。某天幼儿园园长给小朋友们每人发一颗糖果,小朋友们拿到后发现有一些同学拿到的糖果颜色和自己相同,有一些同学糖果颜色和自己不同。假定每个小朋友只知道有多少同学和自己拿到了相同颜色的糖果。上课后,有一部分小朋友兴奋的把这一结果告诉小明老师,并让小明老师猜一猜,最少有多少同学拿到了糖果。例如有三个小朋友告诉小明老师...

2018-08-10 19:50:29 803

原创 一封奇怪的信---网易游戏(互娱)-游戏测试开发工程师真题 题解

一封奇怪的信时间限制:1秒空间限制:32768K现在你需要用一台奇怪的打字机书写一封书信。信的每行只能容纳宽度为100的字符,也就是说如果写下某个字符会导致行宽超过100,那么就要另起一行书写信的内容由a-z的26个小写字母构成,而每个字母的宽度均会事先约定。例如字符宽度约定为[1,2,3,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5]...

2018-08-10 17:12:53 693

转载 浏览器http缓存机制

前言Http 缓存机制作为 web 性能优化的重要手段,对于从事 Web 开发的同学们来说,应该是知识体系库中的一个基础环节,同时对于有志成为前端架构师的同学来说是必备的知识技能。但是对于很多前端同学来说,仅仅只是知道浏览器会对请求的静态文件进行缓存,但是为什么被缓存,缓存是怎样生效的,却并不是很清楚。在此,我会尝试用简单明了的文字,像大家系统的介绍HTTP缓存机制,期望对各位正确的理解前...

2018-07-25 19:46:14 3133

转载 http协议各个版本

一、HTTP协议版本更替HTTP/0.9        HTTP协议的最初版本,功能简陋,仅支持请求方式GET,并且仅能请求访问HTML格式的资源。HTTP/1.0    请求行必须在尾部添加协议版本字段(http/1.0);必须包含头消息        在0.9版本上做了进步,增加了请求方式POST和HEAD;不再局限于0.9版本的HTML格式,根据Content-Type可...

2018-07-25 15:57:43 44997 5

转载 《高性能MySQL》---查询性能优化

目录一、基本原则:优化数据访问二、重构查询三、MySql如何优化和执行查询四、MySql能处理的一些优化类型五、联接查询六、优化特定类型的查询七、查询优化提示 本篇深入了解查询优化和服务器的内部机制,了解MySql如何执行特定查询,从中也可以知道如何更改查询执行计划,当我们深入理解MySql如何真正地执行查询,明白高效和低效的真正含义,在实际应用中就能扬长避短。声明:本人使用的数据库版本为MySq...

2018-07-10 16:03:18 1588

原创 加速alter table

MySql的ALTER TABLE 操作的性能对大表来说是个大问题。MySQL执行大部分修改表结构操作的方法是新建一个需要的结构的空表,从旧表中查出所有数据插入新表,然后删除旧表。这样操作肯需要花费很长时间,如果内存不足而表又很大,而且还有很多索引的情况下尤其如此。许多人都有这样的经验。ALTER TABLE操作需要花费数个小时甚至数天才能完成。MySQL5.1以及更新版本包含一些类型的“在线”操...

2018-07-10 09:58:43 389

原创 压缩(前缀压缩)索引

MyISAM使用前缀压缩来减少索引的大小,从而让更多的索引可以放入内存中,这在某些情况下能极大地提高性能。默认只压缩字符串,但通过参数设置也可以对整数做压缩。MyISAM压缩每个索引块的方法是,先完全保存索引块中的第一个值,然后将其他值和第一个值进行比较得到相同前缀的字节数和剩余的不同后缀部分,把这部分存储起来即可。例如,索引块中的第一个值是“perform“,第二个值是”performance“...

2018-07-10 09:25:08 2542

转载 MySQL覆盖索引

概念如果索引包含所有满足查询需要的数据的索引成为覆盖索引(Covering Index),也就是平时所说的不需要回表操作判断标准使用explain,可以通过输出的extra列来判断,对于一个索引覆盖查询,显示为using index,MySQL查询优化器在执行查询前会决定是否有索引覆盖查询 注意1、覆盖索引也并不适用于任意的索引类型,索引必须存储列的值2、Hash 和full-text索引不存储值...

2018-07-09 18:37:32 733

转载 MySQL事务控制和锁定语句

MySQL 支持对 MyISAM 和 MEMORY 存储引擎的表进行表级锁定,对 BDB 存储引擎的表进行页级锁定,对 InnoDB 存储引擎的表进行行级锁定。默认情况下,表锁和行锁都是自动获得的,不需要额外的命令。但是在有的情况下,用户需要明确地进行锁表或者进行事务的控制,以便确保整个事务的完整性,这样就需要使用事务控制和锁定语句来完成。 1) LOCK TABLE 和 UNLOCK TABLE...

2018-07-09 16:36:23 425

转载 MySQL触发器

MySQL包含对触发器的支持。触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行。创建触发器在MySQL中,创建触发器语法如下:CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt其中:trigge...

2018-07-09 16:26:15 355

转载 MySQL存储过程

点击打开链接存储过程简介SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。存储过程是可编程的函数,在数据库中创建并保存,可以由SQL语句和控制结构组成。当想要在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用...

2018-07-09 15:52:03 254

原创 MySQL优化数据库对象

1、优化表的数据类型使用PROCEDURE ANALYSE()对当前应用的表进行分析,该函数可以对数据表中列的数据类型提供优化建议。select* from tbl_name PROCEDURE ANALYSE();select* from tbl_name PROCEDURE ANALYSE(16,256);第二句告诉PROCEDURE ANALYSE()不要为那些包含的值多于16个或者256...

2018-07-05 19:19:37 294

转载 MySQL正则表达式

1.  Mysql的正则表达式仅仅使SQL语言的一个子集,可以匹配基本的字符、字符串。     select * from wp_posts where post_name REGEXP 'hello';  可以检索出列post_name中所有包含hello的行 2.  .匹配除\n之外的任意单个字符    select * from wp_posts where post_name REGEXP...

2018-07-05 17:03:08 26352 1

转载 MySql 使用索引进行查询优化;常用mysql优化

索引有它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。建立索引会占用磁盘空间的索引文件。一般情况这个问题不太严重,但如果你在一个大表上创建了多种组合索引,索引文件的会膨胀很快。索引只是提高效率的一个因素,如果你的MySQL有大数据量的表,就需要花时间研究建立最优秀的索引...

2018-07-05 16:36:46 31769 2

转载 MySql索引类型

Mysql支持哪几种索引索引是在MySql的存储引擎层中实现的,而不是在服务器层从数据结构角度1、B+树索引(O(log(n))):关于B+树索引,可以参考 MySQL索引背后的数据结构及算法原理BTREE在MyISAM里的形式和Innodb稍有不同在 Innodb里,有两种形态:一是primary key形态,其leaf node里存放的是数据,而且不仅存放了索引键的数据,还存放了其他字段的数据...

2018-07-04 22:15:19 23476 1

转载 为什么要使用索引?

前言  为什么要使用索引?影响数据库效率的原因千千万万,使用索引是为了解决哪方面的数据库的瓶颈?如果我们到现在只知道使用索引能够查询更快、索引就像目录,我们根据目录再进行查询就很快,等等这些东西,那我们还有很长的路要走。点一  MySQL 数据库存储数据最终是以文件的形式存储到硬盘的。一般来说,我们在程序中使用的时候肯定要把磁盘文件中的数据读到内存中。那么就这个 “读” 的过程是什么样子的呢?磁盘...

2018-07-03 19:58:28 2101

转载 一步步分析为什么B+树适合作为索引的结构

前言本文是在讲述什么样的数据结构适合作为索引,以及其适合作为索引的原因。而阅读本文需要对B树和B+树结构有稍微的理解。以及需要对磁盘操作知识有稍微的了解。对于磁盘操作的相关知识,在文章尾部的链接文章中,有详细的介绍。在MySQL中,主要有四种类型的索引,分别为:B-Tree索引,Hash索引,Fulltext索引和R-Tree索引,本文讲的是B-Tree索引。什么是索引索引(Index)是帮助数据...

2018-07-03 19:56:34 295 1

转载 n个元素进栈,共有多少种出栈顺序?

1.基于栈的问题分析我们把n个元素的出栈个数的记为f(n), 那么对于1,2,3, 我们很容易得出:                                  f(1) = 1     //即 1                                  f(2) = 2     //即 12、21                                  f(3) = 5...

2018-07-03 19:52:14 28065 5

转载 若度为m的哈夫曼树中,其叶结点个数为n,则非叶结点的个数为()

首先说明一点,我们平时一般所说的哈夫曼树是指最优二叉树,也叫做严格二叉树(注意不是完全二叉树),但是哈夫曼树完全不局限于二叉树,也存在于多叉树中,即度为m的哈夫曼树,也叫最优m叉树,严格m叉树(注意不是完全m叉树).这题表示哈夫曼树的节点 的度要么是0要么是m设度不为0(即非叶结点)的个数为X则总的结点数为:X+n除根结点外,其余的每一个结点都有一个分支连向一个结点,对于度为m的每个结点都有m个分...

2018-07-03 19:49:52 9299 4

转载 Linux IO模式及 select、poll、epoll详解

点击打开链接同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。本文讨论的背景是Linux环境下的network IO。一 概念说明在进行解释之前,首先要说明几个概念:- 用户空间和内核空间- 进程切换- 进程的阻塞- 文件描述符- 缓存 I/O用户空间与内核空间现在操作系统都是采用虚拟存储器,那么对32位操...

2018-06-29 11:34:34 188

转载 IO多路复用;epoll;select

I/O多路复用(又被称为“事件驱动”),首先要理解的是,操作系统为你提供了一个功能,当你的某个socket可读或者可写的时候,它可以给你一个通知。这样当配合非阻塞的socket使用时,只有当系统通知我哪个描述符可读了,我才去执行read操作,可以保证每次read都能读到有效数据而不做纯返回-1和EAGAIN(read发现输入缓冲中没数据可读时返回-1,并在errno中保存EAGAIN常量)的无用功...

2018-06-29 10:59:13 323

原创 剑指offer---顺时针打印矩阵

题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.class Solution {public: vector<int> printMatrix(vector&...

2018-06-13 11:28:08 130

原创 剑指offer---二叉树的镜像

题目描述操作给定的二叉树,将其变换为源二叉树的镜像。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public: v...

2018-06-13 10:35:15 504

原创 剑指offer---树的子结构

鉴于二叉树的子树及二叉树的子结构问题,现总结如下:什么是二叉树的子结构及子树?子树的意思是包含了一个结点,就得包含这个结点下的所有节点,一棵大小为n的二叉树有n个子树,就是分别以每个结点为根的子树。子结构的意思是包含了一个结点,可以只取左子树或者右子树,或者都不取。1、输入两棵二叉排序树A,B,判断B是不是A的子树。(ps:我们约定空树不是任意一个树的子树)二叉排序树,又称为二叉查找树,它或是一棵...

2018-06-13 10:05:40 194

原创 剑指offer---合并两个排序的链表

题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* Merge...

2018-06-12 18:26:36 276

原创 剑指offer---反转链表

题目描述输入一个链表,反转链表后,输出链表的所有元素。就地逆置:/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* ReverseList(ListNode* p...

2018-06-12 16:59:40 290

原创 剑指offer---链表中倒数第k个结点

题目描述输入一个链表,输出该链表中倒数第k个结点。使用快慢指针/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* FindKthToTail(ListNode* ...

2018-06-12 16:32:37 222

原创 剑指offer---数值的整数次方

题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。/** * 1.全面考察指数的正负、底数是否为零等情况。 * 2.写出指数的二进制表达,例如13表达为二进制1101。 * 3.举例:10^1101 = 10^0001*10^0100*10^1000。 * 4.通过&1和>>1来逐位读取1101,为1时将该位代...

2018-06-12 16:03:02 204

原创 剑指offer---二进制中1的个数

题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影响。举个例子:一个二进制数1100,从右边数起第三位是处于最右边的一个1。减去1后,第三位变成0,它后面的两位0变成了1,而前面的...

2018-06-12 10:43:30 167

原创 剑指offer---二叉搜索树的第K大的结点

题目描述给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。思路:二叉搜索树的一个重要性质就是它的中序遍历是排序的,因此这道题目只需要用中序遍历算法遍历一棵二叉搜索树,就很容易找出它的第K大结点。中序遍历用递归实现比较容易,但要想清楚的是遍历到一个根结点的时候要做的是什么?中序遍历二叉树打印的时候我们在递归...

2018-06-10 17:21:45 277

原创 剑指offer---序列化二叉树

题目描述请实现两个函数,分别用来序列化和反序列化二叉树二叉树序列化               我们以前序遍历的顺序进行序列化,对于空结点我们用一个特殊的符号‘$’来代替,则序列化后的字符串为“1 2 4 $ $ 5 $ $ 3 6 $ $ 7 $ $”数组vector<int>:1 2 4 0xFFFFFFFF 0xFFFFFFFF 5 0xFFFFFFFF 0xFFFFFFFF 3...

2018-06-10 15:54:40 205

原创 剑指offer---把二叉树打印成多行

题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }}...

2018-06-10 13:32:30 120

原创 剑指offer---按之字形顺序打印二叉树

题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : v...

2018-06-10 13:20:22 165

原创 剑指offer---二叉树的下一个结点

题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路:首先知道中序遍历的规则是:左根右,然后作图 结合图,我们可发现分成两大类:1、有右子树的,那么下个结点就是右子树最左边的点;(eg:D,B,E,A,C,G)2、没有右子树的,也可以分成两类,a)是父节点左孩子(eg:N,I,L) ,那么父节点就是下一个...

2018-06-10 12:29:40 182

DDA画线算法

该算法为DDA画线算法,使用MATLAB语言

2017-05-24

空空如也

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

TA关注的人

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