自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(126)
  • 资源 (4)
  • 收藏
  • 关注

转载 【转载】csdn快速转载博客

来源:http://blog.csdn.net/bolu1234/article/details/51867099 前言  对于喜欢逛CSDN的人来说,看别人的博客确实能够对自己有不小的提高,有时候看到特别好的博客想转载下载,但是不能一个字一个字的敲了,这时候我们就想快速转载别人的博客,把别人的博客移到自己的空间里面,当然有人会说我们可以收藏博客啊,就不需要转载,(⊙

2017-04-22 15:53:24 361

转载 Mipmap与纹理过滤

http://www.mamicode.com/info-detail-1167142.html为了加快渲染速度和减少纹理锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为Mipmap。使用DirectX Texture Tool(DX自带工具)预生成Mipmap ChainOriginal Mip1 Mip2 Mip3 Mip4

2016-09-01 17:27:06 7603

转载 纹理映射mipmap

MipmappingMipmap是一个功能强大的纹理技术,它可以提高渲染的性能以及提升场景的视觉质量。它可以用来解决使用一般的纹理贴图会出现的两个常见的问题:闪烁,当屏幕上被渲染物体的表面与它所应用的纹理图像相比显得非常小时,就会出现闪烁。尤其当相机和物体在移动的时候,这种负面效果更容易被看到。 性能问题。加载了大量的纹理数据之后,还要对其进行过滤处理(缩小),在屏幕上显示的只是一小部

2016-09-01 16:45:27 5059

转载 华为OJ平台:“编译错误”

转载:华为OJ平台:“编译错误”2014-7-3 今天参加了华为OJ平台 “2015届校园招聘机考”,考试三道题目,三个小时(晚了一个小时才通知我, 只用了两个小时)。一直在用leetcode练习,在华为OJ上提交题目时各种“编译错误”,十分郁闷。        这里记录一下我遇到的“编译错误”的原因。(当时网上没查到原因,调试了半个多小时)题目要求:验证哥德巴赫猜想,判断

2015-09-16 16:39:02 1071

原创 字符串去除首尾和中间重复空格

题目美团在线模拟笔试题,字符串去除首尾和中间重复空格解析是否是字符串开始位置的空格标志位,start 遇到空格的标志位,flag 代码实现#include <stdio.h>#include <stdlib.h>#include <string.h>char* deleteBlank(char* sourcestring){ char* newstring = sourcestring

2015-09-07 16:44:15 856

转载 IP地址、子网掩码与划分方法

转载:http://blog.163.com/boy_hxm/blog/static/35417774200711249555969/1) 什么是IP地址: 一、IP地址的规划    1、 IP地址的基本概念     IP地址即也可以称为互联网地址或Internet地址。是用来唯一标识互联网上计算机的逻辑地址。每台连网计算机都依靠IP地址来标识自己。就很类似于我们的电话

2015-08-26 23:05:51 2955

原创 22. 栈的压入、弹出序列

题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。解析如果下一个弹出的数字刚好是栈顶数字,那么直接弹出。如果下一个弹出的数字不在栈顶,需要把压栈序列中还没有入栈的数字

2015-08-20 16:53:53 404

原创 21. 包含min函数的栈

题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。解析添加一个辅助栈,存放与数据栈中每个元素对应的当前栈中的最小值。 维护辅助栈: 1. 入栈:把新元素添加到数据栈,当新元素比之前的最小元素小时,把新元素添加到辅助栈中,否则,把之前的最小元素重复插入到辅助栈中。 2. 出栈:从数据栈弹出元素的同时,也要将辅助栈中,与该元素对应的最小值弹出辅助栈。实

2015-08-20 16:52:08 372

原创 20. 顺时针打印矩阵

题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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.解析 打印第一圈的左上角坐标是(0,0),第二圈的的左上角坐标是(1,1),所以,每一圈的左上角坐标选定为

2015-08-20 16:49:19 298

原创 19. 二叉树的镜像

题目struct BinaryTreeNode { int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight; };解析因为二叉树的存储结构是通过链表存储的。所以求二叉树的镜像,只需要修改每个结点的左右二叉树指针域

2015-08-20 16:48:19 402

原创 18. 树的子结构

题目描述输入两颗二叉树A,B,判断B是不是A的子结构。struct BinaryTreeNode { int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight; };解析递归调用HasSubtree遍历二叉树A,如

2015-08-20 16:44:58 325

原创 17. 合并两个排序的链表

题目描述输入两个递增排列的链表,合并这两个链表并新链表中的结点仍然是按照递增排列的。解析用递归的方法,修改链表的指针域。实现ListNode* Merge(ListNode* pHead1, ListNode* pHead2){ if (pHead1 == NULL) return pHead2; if (pHead2 == NULL

2015-08-20 16:43:49 358

原创 16. 反转链表

题目描述定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。struct ListNode{ int m_nValue; ListNode* m_pNext;};解析链表反转中,需要三个链表指针,一个指向当前被修改指针域的结点pNode,一个保存上一个结点pPrev,一个保存下一个需要被修改的结点pNext。实现Lis

2015-08-20 16:41:54 313

原创 15. 链表中倒数第k个结点

题目描述输入一个链表,输出该链表中倒数第k个结点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。例如一个链表中有6个结点,从头结点开始它们的值依次是1,2,3,4,5,6.这个链表的倒数第3个结点是值为4的结点。解析假设整个链表有n个结点,那么倒数第k个结点就是从头结点开始的第n-k个结点.需要两次遍历链表,第一次统计链表的中的结点个数,第二次就能找到链表的

2015-08-20 16:40:12 262

原创 14. 调整数组顺序使奇数位于偶数前面

题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。解析注意代码的重用性构建。实现void ReorderOddEven_1(int *pData, unsigned int length){ //传参有效性判断 if (pData =

2015-08-20 16:37:47 288

原创 13. 在O(1)时间删除链表结点

题目描述在给定单链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。链表结点与函数的定义如下:struct ListNode{ int m_nValue; ListNode* m_pNext;};void DeleteNode(ListNode** pListHead, ListNode* pToBeDeleted);解析在单链表中删

2015-08-20 16:36:57 268

原创 12. 打印1到最大的n位数

题目描述输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,打印出1,2,3一直到最大的3位数即999.解析n的取值范围可以很大,考虑大数问题。最常见的方法是用字符串或者数字表达大数。把问题转换成数字排列问题。在字符串上模拟数字加法思考: 如何用字符串存储数字; 如何在字符串表达的数字上模拟加法 把字符串表达是数字打印出来实现#inc

2015-08-20 16:35:27 290

原创 11. 数值的整数次方

题目实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。解析考虑base 和 exponent的取值分类。base和exponent可以是正数,负数,0。 (base,exponet): (0, 0):数学上没有意义,定义为0,可与面试官说明。 (0,负数):需要特殊处理

2015-08-20 16:33:59 290

原创 10. 二进制中1的个数

题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解析方法一: 把n和1做与运算,判断n的最低位是不是1;接着把1左移一位得到2,再和n做运算,就能判断n的次低位是不是1……每次都能判断n的其中一位是不是1。这个解法的循环次数等于整数二进制的位数。 方法二: 把一个整数减去1,再和原整数做与运算,会把该整数最右边一个1变成0.那么一个整数的二进制表示中有多少

2015-08-20 16:32:39 424

原创 9. 斐波那契数列

题目描述写一个函数,输入n,求斐波那契数列(Fibonacci)数列的第n项,斐波那契数列的定义为: 解析方法一:用递归的方法来求斐波那契数列 方法二:用循环来求斐波那契数列,用简单的方法从下往上计算,先计算根据f(0)、f(1)计算出f(2),在根据f(1)、f(2)计算出f(3)……依次计算到f(n)。时间复杂度为O(n)。实现//斐波那契数列递归方法long l

2015-08-20 16:31:28 856

原创 7. 用两个队列实现栈

题目描述用两个队列实现一个栈,完成栈的Push和Pop操作。 解析两个队列queue1和queue2 入栈:直接压入queue1 出栈:如果queue1不为空,将queue1中的元素除队尾元素外,其他全部弹出压入queue2中;否则,将queue2中的元素除队尾元素外,其他全面弹出压入queue1中。实现#include #include using namesp

2015-08-20 16:29:06 395

原创 7. 用两个栈实现队列

题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 解析两个栈stack1 和stack2 入队列:直接压入stack1即可 出队列:如果stack2不为空,把stack2中的栈顶元素直接弹出;否则,把stack1的所有元素全部弹出压入stack2中,再弹出stack2的栈顶元素实现#include #include using namespace s

2015-08-20 16:26:53 356

原创 4. 替换空格(字符数组)

题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为”We Are Happy.“则经过替换之后的字符串为“We%20Are%20Happy.”解析直观的想法是,新建一个数组,逐个复制,遇到空格时,写入%20,但这需要占用额外空间。 如果我们顺序的遍历字符串,当遇到空格时,用%20替换空格,这将覆盖掉空格后面的字符 如果覆盖前,后移剩余字符串,那么移动的时

2015-08-20 16:23:13 420

原创 5. 从尾到头打印链表

题目描述输入一个链表的头结点,从尾到头反过来打印出每个结点的值。解析逆序打印链表,我们遍历链表只能从头到尾,现在要求我们从尾到头。后进先出,可以想到用栈存储遍历的节点,然后打印出栈序列。 而递归的本质就是栈结构,在打印本节点之前,先打印本节点的下一个节点。实现void PrintListReversingly_Iteratively(ListNode* pHead){

2015-08-20 16:21:25 269

原创 3. 二维数组中的查找

参考:二分查找方法题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解析方法一:剑指offer中提供的方法 如果我们从左上角开始查找,那么当查找元素比左上元素大时,无法判断是应该向下、向右还是向右下;从右下也是同理。 但是如果我们从右上角开始查

2015-08-20 16:18:39 341

转载 字符串匹配的KMP算法

转载地址:http://kb.cnblogs.com/page/176818/字符串匹配是计算机的基本任务之一。  举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?  许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是

2015-08-20 15:16:30 306

原创 C/C++产生随机数

C/C++中产生随机数要用到的是rand()函数,srand()函数。1、如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647。 #include<stdio.h> #include<stdlib.h> int main

2015-08-11 17:30:10 1801

原创 [Leetcode 138] Copy List with Random Pointer

题目 复制带有随机指针的链表:一个单链表除了next指针外还有一个random指针随机指向任何一个元素(可能为空) 《剑指offer》上的面试题26分析代码

2015-07-27 10:42:21 1559

原创 [Leetcode 160] Intersection of Two Linked Lists

题目 给定两个链表,求两个单链表的交点。要求时间复杂度为O(n),空间复杂度为O(1)分析代码采用方法二/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {

2015-07-27 09:51:43 358

原创 [Leetcode 142] Linked List Cycle II

题目 不用额外的空间,返回单链表中环的入口。分析 利用快慢指针的方法判断该单链表是否有环,一个指针从快慢指针相遇的位置,一个指针从链表头结点位置,同时每次移动一步,在两个指针相遇的地方就是单链表环的入口推导 代码/** * Definition for singly-linked list. * struct ListNode { * int val; * Lis

2015-07-26 20:19:25 256

原创 [Leetcode 141] Linked List Cycle

题目判断单链表里是否有环分析 用两个指针P1和P2,P1每次走一步,P2每次走两步,如果链表中有环,两个指针一定会在环中相遇。代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x)

2015-07-26 19:55:29 287

原创 [Leetcode 234] Palindrome Linked List

题目 判断一个单向链表是否是回文链表,要求在O(n)的时间复杂度,O(1)的空间复杂度。分析 方法一:利用栈先进后出的性质,将链表的前半段压入栈中,在逐个弹出与链表后半段比较,时间复杂度O(n),但需要n/2的栈空间,空间复杂度为O(n); 方法二:翻转链表法,将链表后半段原地翻转,再将前半段、后半段依次比较,判断是否相等,时间复杂度为O(n),空间复杂度为O(1),满足题目要求。

2015-07-26 19:27:01 367

原创 查找单链表的中间节点

因为单链表只能向后查找的原因,查找单链表的中间节点,最一般的解法是,先遍历一次链表得到链表的长度,然后再遍历一半链表,得到链表中间元素。 还有一种比较机智的办法是,利用快慢指针,设两个指针,一个指针每次走一步,一个指针每次走两步,当每次走两步的指针到达链表尾部的时候,每次走一步的指针刚好到达链表中间。Node * findMiddleNodeOfLinedList(Node *head){

2015-07-26 17:18:15 438

原创 [Leetcode 25] Reverse Nodes in k-Group

题目分析 1. 方法一:题目中提到可以采用常数量个空间,所以想到了,采用一个大小为k的数组空间来存储group值,然后利用遍历k步前记录的链表起始地址,来修改这个k-Group链表的值。(修改的是链表中存储的值,而非链表指针) 2. 方法二:先遍历k步,记录k-Group链表的起始地址,和终止地址,然后调用一个链表翻转的子函数,对这个记录下起始地址和终止地址的链表翻转操作。(需要遍历两遍链

2015-07-26 16:39:50 308

原创 237、Delete Node in a Linked List [Leetcode]

题目 给定单链表的一个节点(不是最后一个节点),请删除它分析 没有表头,如何找到这个节点的前一个节点? 方法:采用“懒删除”,当前节点复制下一个节点的内容,然后删除下一个节点C代码/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *n

2015-07-25 18:45:33 310

原创 206、Reverse Linked List [Leetcode]

题目描述分析 思路:把当前节点作为已经翻转结果的新表头节点C代码/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* reverseList(struct ListNode* h

2015-07-25 18:33:37 299

原创 92、Reverse Linked List II [Leetcode]

Reverse Linked List II 题目描述 在链表原位置上,翻转位置m到n上的结点,指遍历链表一次分析 如何找到第m个元素和第n个元素 如何处理前面和后面 1.保存前面部分最后一个元素 2. 保存后面部分第一个元素 3. 特殊情况都有哪些:是否需要修改头指针C代码/** * Definition for singly-linked list. *

2015-07-25 18:18:31 310

原创 31. 连续子数组的最大和

题目描述 输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间负责度为O(n)。解析 1. 解法一: 看到这个题目,我们首先想到的是求出这个整型数组所有连续子数组的和,长度为n的数组一共有 n(n+2)/2个子数组,因此要求出这些连续子数组的和最快也需要O(n^2)的时间复杂度。但是题目要求的O(n)的时间复杂度,因此上述思路不

2015-07-24 16:23:25 427

原创 38. 数字在排序数组中出现的次数

题目描述 统计一个数字在排序数组中出现的次数。例如,输入排序数组{1,2,3,3,3,3,4,5}和数字3, 由于3在这个数组中出现了4次,因此输出4.解析 1. 解法一: 该解法是最直观的解法,可以先使用二分查找先找到这个元素,然后分别向左和向右遍历,把左右相同的元素的个数都计算出来。 该方法很直观,当算法的效率太低。 2.解法二: 可以将

2015-07-20 16:33:15 323

原创 24. 二叉搜索树的后序遍历序列

题目描述 输入一个整数数组,判断该整数数组是不是某二叉搜索树的后序遍历的结果,如果是则返回true,否则返回false。假设输入数组的任意两个数字都互不相同解析 在后序遍历得到的序列中,最后一个数字是树的根结点的值。数组中前面的数字可以分为两部分:第一部分是左子树结点的值,它们都比根结点的值小,第二部分是右子树结点的值,它们都比根结点的值大。主要代码实现bool V

2015-07-20 16:29:14 348

数据结构线性表学习笔记总结

数据结构线性表学习笔记总结 线性表-顺序存储-链式存储-循环链表-双链表 知识点总结-代码实现

2015-05-29

跟我一起写makefile

跟我一起写makefile

2015-04-29

C程序设计语言(第2版·新版)习题解答

答案代码可以直接copy使用,非常清晰不用担心,不是PDF,不是word,切换题时非常方便

2013-04-21

空空如也

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

TA关注的人

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