自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (2)
  • 收藏
  • 关注

原创 模式匹配算法

算法一:朴素的模式匹配算法假设我们要从主串s="goodgoogle"找到t="google"这个子串的位置,我们需要下列步骤1、主串s的第1位开始,s与t前三个字符都匹配成功,第四个字符不匹配(竖线表示相等,闪电状弯折表示不想等)2、主串s的第2位开始,匹配失败3、主串s的第3位开始,匹配失败4、主串s的第4位开始,匹配失败5、主串s的第5位开始,s与t,6个字符全部匹配...

2018-06-29 17:33:01 25537 2

原创 二进制中1的个数

题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。方法一:分析:如果一个数不为0,则这个数中至少含有一个1,将这个数减1,则最右面的1变成0,后面的0变成1,其余各位保持不变,即从最后一个1开始,各位取反。再将n与n-1作与运算,从n的最后一个1开始,均置为0,即将n的最后一个1变为0。这样能进行多少次计算也就有多少个1。举例说明:一个二进制数为11100,减1,变...

2018-06-26 23:09:45 295

原创 矩形覆盖

题目:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?分析:2*n的大矩形可以分解成以下两步先覆盖左边2*1的小矩形,再覆盖2*(n-1)的矩形先覆盖左上2*1的小矩形,再覆盖2*(n-2)的矩形(左下2*1位置只有一种放法)方法一:递归class Solution {public: ...

2018-06-25 22:53:35 235

原创 变态跳台阶

题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法分析: 因为n级台阶,第一步有n种跳法:跳1级、跳2级、到跳n级 跳1级,剩下n-1级,则剩下跳法是f(n-1)跳2级,剩下n-2级,则剩下跳法是f(n-2)......跳n-1级,剩下1级,则剩下跳法是f(1)跳n级,只有一种跳法f(n)=f(...

2018-06-24 23:18:22 268

原创 跳台阶

题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。方法一:递归当只有一阶台阶的时候,只有一种跳法,有两阶台阶的时候,有两种跳法。有n阶台阶的时候,可以分解为先跳n-1阶台阶,再跳1阶台阶和先跳n-2阶台阶,再一次跳2阶台阶。class Solution {public: int jumpFloor(int number) ...

2018-06-24 17:43:03 270

原创 斐波那契数列

题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。(n<=39)方法一:使用递归class Solution {public: int Fibonacci(int n) { if(n<=0)return 0; if(n==1||n==2) return 1; r...

2018-06-24 16:20:40 239

原创 二义性与虚基类

二义性在多继承时,基类与派生类之间,或基类之间出现同名成员时,将出现访问时的二义性(不确定性)——采用虚函数或同名隐藏规则来解决。当派生类从多个基类派生,而这些基类又从同一个基类派生,则在访问此共同基类中的成员时,将产生二义性——采用虚基类来解决。class A {public: void f();};class B {public: void f(); void g();};...

2018-06-23 10:19:06 839

原创 类型兼容规则与同名隐藏规则

一个公有派生类的对象在使用上可以被当作基类的对象派生类的对象可以隐含转换为基类对象;派生类的对象可以初始化基类的引用;派生类的指针可以隐含转换为基类的指针;通过基类对象名、指针只能使用从基类继承的成员#include <iostream>using namespace std;class Base1 { //基类Base1定义public: void displa...

2018-06-22 17:57:56 760

原创 栈的压入、弹出序列

题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)分析:新建一个空栈,将第一个元素压入栈中,判断栈顶元素是否等于出栈序列的第一个元素,若相等时...

2018-06-21 20:11:57 257

原创 三种继承方式

三种继承方式:公有继承,私有继承,保护继承不同继承方式的影响主要体现在:派生类成员对基类成员的访问权限派生类对象对基类成员的访问权限公有继承:基类的public和protected成员的访问属性在派生类中保持不变,但基类的private成员不可直接访问。派生类中的成员函数可以直接访问基类中的public和protected成员,但不能直接访问基类的private成员。通过派生类的对象只能访问基类的...

2018-06-21 16:42:56 2457

原创 包含min函数的栈

题目:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。分析:定义两个栈为私有数据,sta保存所有数据,sta_min的top保存最小的那个数据;入栈:数据压入sta,若sta_min为空,或者数据比sta_min的top小,将该数压入sta_min,现在sta_min的top为sta的最小值;出栈:若sta和sta_min的top相等,二者同时弹出(此时top值为...

2018-06-20 23:38:33 239

原创 用两个栈实现队列

题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。分析:入栈:将元素进栈1;出栈:判断栈2是否为空,不为空,直接将栈2元素pop;若为空,将栈1的元素依次push进栈2中,栈1元素全部pop,再将栈2 top元素pop。class Solution{public: void push(int node) { ...

2018-06-20 19:28:41 222

原创 删除链表中重复的结点

题目:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5分析:如果链表为空,返回空(鲁棒稳定性);设置两个指针,分别指向当前处理对象与上一个对象;设置一个标识符(should_delete),当出现重复节点时将标识符置为t...

2018-06-15 23:43:33 235

原创 二维数组中的查找

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解析:二维数组已经排序,从左向右,从上到下递增。如果二维数组不为空,从第一行依次向下开始查询,如果行不为空,比较目标值与对应行的首尾节点,如果大于头节点,小于尾节点,就在行中依次查询class Solution {...

2018-06-15 21:21:27 276

原创 链表中环的入口结点

题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。问题分析:设置两个指针,pSlow初始化为pHead,在后,走的慢;pFast初始化为pHead->next,在前,走的快,二者一定会在环内相遇;二者相遇之后设置计数器,令指针沿着环走一圈,计算环中元素数量;设置两个指针p1和p2,令p1先走环中元素数量的位置,然后两个同时走,二者会在环入口相遇/...

2018-06-12 22:12:56 339

原创 两个链表的第一个公共结点

题目表述:输入两个链表,找出它们的第一个公共结点分析:公共结点是地址相同的两个结点,也就是同一个结点,由于是单向链表,所有从公共结点之后两链表重合,其拓扑结构为Y型。例如:链表一:3,5,7,4;链表二:1,6,5,7,4;从元素5开始两个链表开始重合,两个链表尾部重合方法一:先计算两个链表的长度,计算两个链表的长度差,让较长的链表先走,直到与较短链表一样的长度,然后二者同时移动,找出首次...

2018-06-11 21:25:32 447

原创 复杂链表的复制

题目:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空 方法一:对于复杂链表的赋值可以分成三步走。第一步,将复杂链表赋值下来,在每个节点的后面插入一个节点,这个节点为前面那个节点的复制值;第二步,复制复杂关系;第三步,链表进行拆...

2018-06-09 18:04:07 289

原创 合并两个排序的链表

 题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。方法一:使用递归下面的图使用了一个例子,给出了递归的详细过程,假设pHead1有三个数,分别为1,3,5;pHead2也有三个数,分别为2,4,6。递归压栈过程:将后面未知的部分看做一个黑盒,newhead指向排好序的最后一个元素,newhead->next指向黑盒,黑盒表示剩...

2018-06-07 23:00:28 1842

原创 反转链表

题目:输入一个链表,反转链表后,输出链表的所有元素方法一:将该链表中的元素压入栈中,再将栈中元素依次取出。如果链表为空或者只有一个元素,直接返回就可以了,如果元素个数大于等于2,定义指针p,p依次向后指,将链表元素压入栈中,(注意:这里最后一个元素不压入栈中,并将最后一个元素定义为head)因为出栈到时候,s.pop()之后需要马上检验栈是否为空,先写p->next=s.top();...

2018-06-06 16:45:50 1024

原创 输入一个链表,输出该链表中倒数第k个结点

设置两个指针,kth,end,kth初始化为NULL,当链表的长度小于k值时,返回NULL,表示没有这个节点。当该链表为空时,返回pListHead,k的数值类型为unsigned int,取值可能为0时,当取0时,不成立,返回NULL。设置一个计数器count,累加count的值,当count=k时,end指向第k个节点,令kth指向pListHead,pListHead与end之间的距离为...

2018-06-05 19:51:25 356

原创 从尾到头打印链表

题目:输入一个链表,从尾到头打印链表每个节点的值方法一:将容器printListFromTailToHead中的内容塞入栈reverse中,在将栈中的元素依次存入顺序容器result,并打印出来,实现将元素从尾到头到打印,由于栈是先进后出到,所以保存进栈中再取出时就可以实现元素顺序到翻转/*** struct ListNode {* int val;* ...

2018-06-04 21:40:07 320

《重构改善既有代码的设计第2版》第1章 重构,第一个示例重构过程

《重构改善既有代码的设计第2版》第1章 重构,第一个示例,演示重构过程,从初识代码到重构结束有git详细记录

2024-03-26

jieba-master.zip

jieba 是目前最好的 Python 中文分词组件,它主要有以下 3 种特性: 支持 3 种分词模式:精确模式、全模式、搜索引擎模式 支持繁体分词 支持自定义词典 安装:先下载,随便解压到一个地方,cmd 进入对应文件夹后运行 python setup.py install

2020-04-02

BCC 5.5.1.7z

一个可以直接运行的 BCC 编译器,为什么要BCC 编译器?因为 C 语言中有些指示字或功能等是编译器相关的,使用多种编译器使我们更好的理解 C 语言,这个文件解压直接直接使用,免安装,也可能第一次双击打开会自动安装一些插件,保证功能完整。

2019-11-25

空空如也

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

TA关注的人

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