自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

烽火前秦路

对待知识,犹如飞蛾扑火般热情!

  • 博客(268)
  • 资源 (6)
  • 收藏
  • 关注

原创 剑指Offer----扩展:空格问题(京东)

问题描述:给定字符串(ASCII码0-255)数组,请在不开辟额外空间的情况下删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。例如:" i am a little boy. ",变成"i am a little boy",语言不限,但不要用伪代码作答,函数输入输出请参考如下的函数原型:C++函数原型:void FormatString(char str[],i

2016-08-29 16:00:26 1081

原创 剑指Offer----扩展:选择题(京东)

问题描述:设一课完全二叉树共有999个结点,则在该二叉树中的叶节点个数是?分析:在二叉树的第i层上至多有2^(n-1)个结点(n>=1);深度为k的二叉树至多有2^k-1个结点(k>=1).因为2^9-1 方法二:其实完全二叉树有这个性质,最后一个节点/2就得到他的父节点了,而此时的父节点必然是最后一个父节点,也就是说他之后的

2016-08-29 12:02:11 932

原创 剑指Offer----扩展:上台阶(京东)

问题描述:有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或者二级,要走上m级,共有多少走法?注:规定从一级到一级有0种走法。给定一个正整数int n,请返回一个数,代表上楼的方式数。保证n小于等于100。为了防止溢出,请返回结果Mod 1000000007的值。测试样例:3返回:2分析:这不就是典型的动态规划问题吗,同时也是斐波那契数

2016-08-29 11:20:26 988

原创 剑指Offer----扩展:小东分苹果(京东)

问题描述:果园里有一堆苹果,一共n头(n大于1小于9)熊来分,第一头为小东,它把苹果均分n份后,多出了一个,它扔掉了这一个,拿走了自己的一份苹果,接着第二头熊重复这一过程,即先均分n份,扔掉一个然后拿走一份,以此类推直到最后一头熊都是这样(最后一头熊扔掉后可以拿走0个,也算是n份均分)。问最初这堆苹果最少有多少个。给定一个整数n,表示熊的个数,返回最初的苹果数。保证有解。

2016-08-29 11:15:03 1405

原创 剑指Offer----扩展:抛小球(京东)

问题描述:小东和三个朋友一起在楼上抛小球,他们站在楼房的不同层,假设小东站的楼层距离地面N米,球从他手里自由落下,每次落地后反跳回上次下落高度的一半,并以此类推知道全部落到地面不跳,求4个小球一共经过了多少米?(数字都为整数)给定四个整数A,B,C,D,请返回所求结果。测试样例:100,90,80,70返回:1020分析:其实这道

2016-08-29 11:08:44 917

原创 剑指Offer----扩展:年终奖(京东)

问题描述:小东所在公司要发年终奖,而小东恰好获得了最高福利,他要在公司年会上参与一个抽奖游戏,游戏在一个6*6的棋盘上进行,上面放着36个价值不等的礼物,每个小的棋盘上面放置着一个礼物,他需要从左上角开始游戏,每次只能向下或者向右移动一步,到达右下角停止,一路上的格子里的礼物小东都能拿到,请设计一个算法使小东拿到价值最高的礼物。给定一个6*6的矩阵board,其中每个元素为对应

2016-08-29 11:00:58 619

原创 剑指Offer----扩展:风口的猪-中国牛市(小米)

问题描述:风口之下,猪都能飞。当今中国股市牛市,真可谓“错过等七年”。 给你一个回顾历史的机会,已知一支股票连续n天的价格走势,以长度为n的整数数组表示,数组中第i个元素(prices[i])代表该股票第i天的股价。 假设你一开始没有股票,但有至多两次买入1股而后卖出1股的机会,并且买入前一定要先保证手上没有股票。若两次交易机会都放弃,收益为0。 设计算法,计算你能获得的最大收益。 输

2016-08-28 21:51:01 808

原创 剑指Offer----扩展:二进制(小米)

问题描述:世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么?输入例子:1999 2299输出例子:7分析:将两个整数逐位进行比较,累加不同位的个数,直至两个数都为0.源代码:#define _CRT_SECURE_NO_WARNINGS#include#include

2016-08-28 21:48:45 706 3

原创 剑指Offer----扩展:构造回文(腾讯)

问题描述:给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?输出需要删除的字符个数。方法一:将输入的字符串翻转,利用动态规划求两个字符串的最大公共子序列!源代码#include#include#include#include//memory函数using namespace std;

2016-08-28 19:32:54 641

原创 动态规划----最长公共子序列LCS

1、基本概念  一个给定序列的子序列就是该给定序列中去掉零个或者多个元素的序列。形式化来讲就是:给定一个序列X={x1,x2,……,xm},另外一个序列Z={z1、z2、……,zk},如果存在X的一个严格递增小标序列,使得对所有j=1,2,……k,有xij = zj,则Z是X的子序列。例如:Z={B,C,D,B}是X={A,B,C,B,D,A,B}的一个子序列,相应的小标为。从定义可以看出

2016-08-28 18:08:01 691

原创 剑指Offer----扩展:有趣的数字(腾讯)

问题描述:小Q今天在上厕所时想到了这个问题:有n个数,两两组成二元组,差最小的有多少对呢?差最大呢?输入描述:输入包含多组测试数据。对于每组测试数据:N - 本组测试数据有n个数a1,a2...an - 需要计算的数据保证:1输出描述:对于每组数据,输出两个数,第一个数表示差最小的对数,第二个数表示差最大的对数。输入例子:645 12

2016-08-28 16:25:07 600

原创 剑指Offer----扩展:字符移位(腾讯)

问题描述:小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。你能帮帮小Q吗?输入描述:输入数据有多组,每组包含一个字符串s,且保证:1输出描述:对于每组数据,出移位输后的字符串。输入例子:AkleBiCeilD输出例子:kleieilABCD方法一:使用STL库中的stable_pa

2016-08-28 13:41:29 659

原创 剑指Offer----扩展:删除整型数组中所有的重复元素(中兴)

问题描述:删除整型数组中所有的元素!方法一:使用hash_map方法保存非重复的数字:#include#include#includeusing namespace std;vector dictinctArray(vector &arr){ hash_map mmap; sort(arr.begin(), arr.end()); for

2016-08-25 23:41:39 615

原创 剑指Offer----扩展:交换星号

问题描述:一个字符串只包含*和数字,请把它的*号都放在开头,且数字顺序不能交换!方法一:三次循环数组,第一次将数组中的*号赋给临时数组,第二次将数组中的数字赋给临时数组,第三次将临时数组中的元素赋给原数组!源代码:#include#include#includevoid Function(char *arr, int len){ if

2016-08-25 18:20:28 397

原创 剑指Offer----扩展:删a复制b

问题描述:删除一个字符串中所有的a,并且赋值所有的b,字符串足够大!关键是倒着复制字符串数组!/* 删除一个字符串所有的a,并且复制所有的b。注:数组足够大!*/#include#includevoid Function(char *str){ if (str == NULL) return; int n = 0, numb = 0;

2016-08-25 16:57:52 504

原创 剑指Offer----扩展:0-1交换

问题描述:把一个0-1串(只包含0和1的串)进行排序,你可以交换任意两个位置,使所有的0在前边,所有的1在后边,问最少交换的次数?方法分析:两个指针,分别指向头和尾,当头指向1,尾指向0的时候,进行交换,直至两个指针相遇!#include#include#includeint SwapTime(char *arr, int length){ if (arr

2016-08-25 16:54:19 527

原创 动态申请二维数组并释放

1 C语言版//申请一个m*n的二维数组,并释放数组#define _CRT_SECURE_NO_WARNINGS#include#includeint main(){ int m, n; scanf("%d %d", &m, &n); int **arr = NULL; arr = (int **)malloc(m*(sizeof(int *)));//动态申请二维

2016-08-25 11:03:32 647

原创 动态规划----颜料涂墙问题

问题描述:有一面长度为n(n0代表红色,1代表绿色,2代表蓝色初始值F(1, 0) = F(1, 1) = F(1, 2) = 1;状态转移方程:for(n>1)F(n, 0) = F(n-1, 0)+F(n-1, 1)+F(n-1, 2)F(n, 1) = F(n-1, 1)+F(n-1, 2)F(n, 0) = F(n-1,

2016-08-25 10:42:07 2692

原创 动态规划----硬币问题

问题描述:硬币问题:给你一些面额的硬币,然后给你一个值N,要你求出构成N所需要的最少硬币的数量和方案。分析:这个问题可以尝试用贪心算法去解决,先从面额最大的硬币开始尝试,一直往下找,知道硬币总和为N。但是贪心算法不能保证能够找出解(例如,给,2,3,5,然后N=11)。我们可以换个思路,我们用d(i)表示求总和为i的最少硬币数量(其实就是动态规划中的“状态”),那么怎么从前面的状态(并

2016-08-24 20:12:59 696

原创 动态规划----Maximun Subarray

问题描述:Find the contiguous subarray within an array (containing at least one number) which has the largest sum.For example, given the array [-2,1,-3,4,-1,2,1,-5,4],the contiguous subarray [4,-1,2,

2016-08-24 19:29:14 372

原创 动态规划----Triangle

问题描述:Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below.For example, given the following triangle[ [2],

2016-08-24 19:24:21 545

原创 动态规划----Minimum Path Sum

问题描述:Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.Note: You can only move either down or r

2016-08-24 19:18:10 437

原创 动态规划----费氏数列

我们熟悉的费氏数列也是典型的动态规划的问题。方法一:首先用我们常用的递归方法求解:#include#include#includeusing namespace std;int F1(int n){ if (n == 1) return 1; if (n == 2) return 1; return F1(n - 1) + F1(n - 2);}

2016-08-24 13:25:00 610

原创 动态规划----切割钢条

动态规划方法通常用来求解最优化问题。动态规划算法设计步骤:刻画一个最优解的结构特征。递归定义最优解的值。计算最优解的值,通常采用自底向上的方法。利用计算出的信息构造一个最优解。带备忘的自顶向下法:此方法仍按自然的递归形式编写过程,但过程会保存每个子问题的解(通常保存在一个数组或散列表中)。当需要一个子问题的解时,过程首先检查是否已经保存过此解。如果是,则直接返回保存的值

2016-08-24 13:00:05 418

原创 TCP三次握手/四次挥手详解

1 建立连接协议(三次握手)(1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1。(2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志。因此它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行数据通讯。(3) 客户必须再次回应服务段一个ACK报文,这是报文段3。2

2016-08-17 22:55:07 368

原创 网络编程2----UDP通信

UDPSend.c#include #include #include #include #include #include #include #include #include int main(int arg, char *args[]){ if (arg < 3) return -1; int st = socket(AF_INET, SOCK_DGRAM

2016-08-16 16:40:19 450

原创 网络编程1----TCP通信

网络编程(各种编程语言几乎都支持同一种协议,可进行各种设备间的相互通信)TCP/IPtcp使用的过程,client端,主动连接方叫client。server端,被动接收方叫server。1、TCP先连接(三次握手)client > server:发送SYN(同步信号),起始编号为 aserver > client:回复SYN ,起始编号为b,包含ac

2016-08-16 00:01:42 490

转载 Ubuntu下运行Shell脚本时显示“declare not found”的问题

此种问题只在 Ubuntu 下才会出现!安装 debian 系统根本不存在此类问题,因为只有 Ubuntu 把默认的 bash 替换成了 dash.在使用 debian 一天后感觉:Ubuntu 好像要弄出来一个 Linux 世界里的"Windows 7". 自己 Linux 刚入门,不知见解是否有问题,欢迎提出不同意见。谢谢!- - - - - - - - - - - - - - - -

2016-08-13 16:51:55 3375

原创 MySQL快速入门13----SQL编程

SQL:结构化查询语言,是一门编程语言,是一种管理数据的编程语言!一 元素数据、数据类型、变量、函数、控制流程、运算符 、注释。。。二 注释行注释:方法一: #首先表one中的内容为:mysql> select * from one;+--------+----------+--------------+| one

2016-08-09 00:27:12 2868

原创 MySQL快速入门12----删除数据 & 备份还原 & 视图 & 事务 & 触发器

一 删除数据DeleteDELETE FROM tbl_name [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]按照条件删除指定删除的最多记录数。Limit可以通过排序条件删除。Order by + limit支持多表删除,使用类似连接语法。Delete from

2016-08-08 15:12:59 1534

原创 MySQL快速入门11----查询(3)

1 select- into outfile结果导出导出结果到文件mysql支持,将获得到的数据记录在文件内而不是返回到客户端。常规的:文件内的每一行是一条数据,而每个字段之间使用水平制表符分隔。导出的数据文件可以使用LOAD DATA INFILE语法载入到某个数据表内。注意,不允许向已经存在的文件内导出数据在导出到文件的过程中,支持配置字段分

2016-08-06 23:38:28 366

原创 MySQL快速入门10----查询(2)

order byOrder by,可以使用一列或者多个列对结果进行排序。如果存在多个排序字段,在前一个不能比较出结果后,后边的才起作用可以分别指明是升序还是降序:asc(ascending) desc(descending)用法:[ORDER BY {col_name | expr | position}      [ASC | DESC] , ...]注意:

2016-08-05 23:16:42 752

原创 MySQL快速入门09----查询(1)

select 语法:select select_expr [from tbl_name] [where] [group by] [having] [order by] [limit]select [查询选项] [查询表达式(字段表达式)] [from 子句] [where 子句] [group by 子句] [having 子句] [order by 子句] [limit 子句]注意:sel

2016-08-05 21:05:21 768

原创 MySQL快速入门08----三大范式

为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。在实际开发中最为常见的设计范式有三个:1.第一范式(确保每列保持原子性)第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。

2016-08-05 16:08:44 393

原创 MySQL快速入门07----存储引擎

存储引擎:也叫表类型,指的是数据表的存储机制,索引方案等配套相关功能。不同的引擎,由于处理方式不同,会带来不同的功能或者相应优化,根据实际需求选择合理的引擎。选择表的存储引擎的标准:是否需要事务支持;是否支持外键;并发量的要求;错误恢复的处理;是否支持某些具体功能;配置方案:通过my.ini,可以配置:default-storage-engine

2016-08-05 15:58:57 350

原创 MySQL快速入门06----实体关系 & 外键

一 实体关系在数据库中,常用的实体关系有三种:一对一、一对多和多对多。1.1 一对一的实体关系如果记录的主键值等于另一个关系内记录的主键值,我问称之为一对一的实体关系。一对一的实体关系(1:1)使得两个表保存的实体之间数据是对等的。如:一个学生有基本信息和详细信息。1.2 一对多的实体关系一

2016-08-05 00:12:38 992

原创 MySQL快速入门05----列属性 & 列约束 & 主键

一 定义列属性列约束所谓列约束,就是保证表的结构和数据的正确性和稳定性。总的来说有五种:唯一性和主键约束、外键约束、检查约束、空值约束、默认值约束,有五大关键词,UNIQUE和Primary Key, Foreign Key, CHECK, NOT NULL, DEFAULT二 列属性NULLNull(占用一个字节

2016-08-04 23:31:23 597

原创 MySQL快速入门04----数据类型

一 MySQL数据类型分类由上图可以看到,MySQL的数据类型可以分为三大类:数值型,时间日期型和字符创型,接下来我们分别讲解这三种类型。二 数值型2.1 整数类型,整数类型可以分为以下几种:可使用unsigned控制是否有正负可以使用zerofill来进行前导零填充也存在 布尔bool类型,但是就是tinyint(1)的

2016-08-04 12:05:56 744 2

原创 MySQL快速入门03----字符集 & 校对规则

一 字符集字符集:是一套字符与字符编码的集合。字符,用于显示的抽象符号。编码,计算机都是二进制存储,因此需要将显示符号转换成二进制数才能存储,每个字符所转换成的二进制数,就是字符编码。常见的字符集&编码:Ascii字符集,GB2312字符集,gbk字符集,latin1字符集,unicode字符集等。Ascii(American Standard Co

2016-08-03 22:14:15 1008 1

原创 MySQL快速入门02----数据库操作和表操作

一 数据库简介数据库:对大量信息进行管理的高效解决方案,按照数据结构来组织、存储和管理数据的库数据库系统(DBS,DATABASE SYSTEM):数据库(DB,DATABASE) +数据库管理系统(DBMS,DATABASE MANAGEMENT SYSTEM)1.1 关系型数据库系统MySQL是一种关系型数据库系统,所谓关系型数据库系

2016-08-03 18:02:25 1036

DetoursExpress.msi

一款小而又强大的软件,C学习路上的必选工具!

2016-04-18

OllyDbg.rar

OllyDbg包含有所有的插件,解压缩即可使用。

2016-04-18

Spy_2.7.rar

不用解释,懂得都懂!

2016-04-18

数据结构经典书籍

本压缩文件包括两本书: 一本是由清华大学出版社,严蔚敏、吴伟民编著的《数据结构》(C语言版) 另外一本是由西安电子科技大学出版社,高一凡编著的《数据结构》算法实现及解析(第二版)。

2016-04-01

FscaptureV8.1

FscaptureV8.1

2016-03-22

典型密码算法及其C语言实现_附录代码实现

典型密码算法及其C语言实现_附录代码实现

2016-03-22

空空如也

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

TA关注的人

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