自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

学习使我快乐

好好学习

  • 博客(53)
  • 资源 (3)
  • 问答 (2)
  • 收藏
  • 关注

原创 【剑指**】39 数组中出现次数超过一半的数字

数组中出现次数超过一半的数字题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。思路方法都是书上的,好心塞,法1做了好几遍,总是超时,不知道哪里错了,只是顺便复习了快拍,还是法2简单。。我日...

2018-03-14 10:45:16 239

原创 【剑指**】38.字符串的排列

38.字符串的排列题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。分析思路就来自书上,用递归的思想来做。代码class Solution...

2018-03-13 19:48:16 266

原创 C++字符指针常用写法

C++字符指针常用写法case 1 不指定数组大小,直接用字符赋值char ch[] = {"abcdefg"};cout<<ch<<endl; // 输出 abcdefgcout<<strlen(ch)<<endl; // 输出 7, strlen 输出的是字符长度 cout<<sizeof(ch)<&

2018-03-12 19:56:38 4712

原创 【剑指**】36 二叉搜索树与双向链表

36 二叉搜索树与双向链表题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。思路需要注意, last 在函数里,用的是 指针的指针。 如果不这样做,会报错;自己对指针这部分理解的也不是很深,这部分以后还要再好好看看代码/*struct TreeNode { int v...

2018-03-12 10:31:52 190

原创 【剑指**】35.复杂链表的复制

35.复杂链表的复制题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)思路没有细看书上的思路,但是貌似讲的有点复杂。这道题目看上去复杂,其实实现起来很简单,分2步就可以。Step 1...

2018-03-11 21:05:45 227

原创 【剑指**】34 二叉树中和为某一值的路径

34 二叉树中和为某一值的路径题目描述输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。思路分析这个题目也是很经典的,但是我今天太困了,,,,状态不好反反复复做了好几遍才ac清醒了,再重新看一看吧代码/*struct TreeNode { in...

2018-03-11 11:21:25 124

原创 【剑指**】33.二叉搜索树的后续遍历

33.二叉搜索树的后续遍历题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。分析本题的区别之处在于,不是让你去后序遍历BST,而是给了你序列,让你来判断它是不是由一个BST的后续遍历产生的。这就要求我们对BST 已经后续遍历的特点有所了解。BST 是有序的树,树节点的值大...

2018-03-11 10:06:14 111

原创 【剑指**】32.从上到下打印二叉树

32.从上到下打印二叉树题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。分析层序遍历二叉树,借助 队列 辅助。。代码/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : ...

2018-03-10 12:07:49 124

原创 【剑指**】32-2 分行从上到下打印二叉树

32-2 分行从上到下打印二叉树题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。分析有两种容易想到的方法都可以解决这个问题第一个是额外再增加一个辅助栈,将当前层和下一层的节点分开。 这种方法简单易行,但是会占用额外的空间,时间开销也会增大。第二种是用标志变量,记录每一行的的节点数。本题给出的代码是法1. 法2的代码可以参考书上。 《剑指...

2018-03-10 11:20:20 573

原创 【剑指**】32.从上到下打印二叉树

32.从上到下打印二叉树题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。分析层序遍历二叉树,借助 队列 辅助。。代码/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : ...

2018-03-10 11:05:23 157

原创 【剑指**】31.栈的压入,弹出序列

31 栈的押入弹出序列题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)分析思路是,需要构造一个辅助栈来模拟给...

2018-03-10 10:57:06 293

原创 【剑指**】30.包含min函数的栈

30.包含min函数的栈题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。思路分析思路参考书上。有STL,所以偷懒了,直接调用一下,这样题目就变得简单了但是有一点要注意, STL 里的 stack。在pop 和 top 时,要记得检查是否为空。否则会出错。当时在写的时候,自以为 STL 很完善了,判空这种问题肯定会做好了,但是结...

2018-03-06 15:16:53 126

原创 【剑指**】29.顺时针打印矩阵

29.顺时针打印矩阵题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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.题目分析思路请参考《剑指offer》 p161这道题目比较绕,边界容易写错...

2018-03-05 14:59:47 177

原创 【剑指**】28.对称的二叉树

28.对称的二叉树题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。题目分析编写与前序遍历对称的遍历方法,同时把空指针也加入到遍历的结果中。ps: 这个思路看上去简单,可写出来,还是觉得原作者好厉害。。代码/*struct TreeNode { int val; ...

2018-03-05 11:19:31 143

原创 【剑指**】27.二叉树的镜像

27.二叉树的镜像题目描述操作给定的二叉树,将其变换为源二叉树的镜像。《剑指Offer》 p157题目思路对于根节点,只需要交换左右两个节点的指针即可。然后确定遍历二叉树的方式就行。这里由于要先操作 根节点。所以采用前序遍历。 root->left->right的顺序。代码/*struct TreeNode { int ...

2018-03-04 09:46:33 115

原创 【剑指**】26.树的子结构

26.树的子结构题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)思路分析代码明明照着书写写的,一毛一样,为什么只有44%的case通过。。。。先不管了 - -!代码/*struct TreeNode { int val; struct TreeNode *left; st...

2018-03-03 15:20:34 151

原创 【剑指**】25.合并两个排序的链表

25.合并两个排序的链表题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路分析特殊条件考虑全面即可,整体做法不难代码/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : ...

2018-02-28 22:35:14 146

原创 【剑指**】24.反转链表

24.反转链表题目描述反转链表,返回反转后链表的头指针;分析情况要考虑周全;输入空指针;只有1个节点;保证反转后的链表不断开;代码/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next...

2018-02-27 20:55:20 150

原创 【剑指**】23.链表中环的入口节点

23.链表中环的入口节点题目描述一个链表中包含环,请找出该链表的环的入口结点。没有环则返回空。分析思路和《剑指offer》上的一样。分三个步骤。第一步,判断链表中是否存在环。第二步,判断环的大小第三步,得到环的入口节点代码/*struct ListNode { int val; struct ListNode *next;...

2018-02-26 15:14:49 153

原创 【剑指**】22.链表中倒数第k个节点

22.链表中倒数第k个节点题目描述输入一个链表,输出该链表中倒数第k个结点。分析每一道面试题都会有一个小点等待我们去解决。只有把这个点找到了,才算真正通过了题目的考验。本题可以分为两个考点。第一个如书上所说,考查代码的鲁棒性。针对输入边界边界条件,参数做好检查就可以了。第二个考查编程思路。本题是问倒数第k个节点。但是由于链表是单链表,所以很自然的我们需要把倒

2018-01-29 22:02:56 192

原创 【剑指**】21.调整数组顺序使奇数位于偶数前面

21.调整数组顺序使奇数位于偶数前面题目描述1输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分.分析题目描述1是《剑指OFFER》上给出的描述。只要求数组前面是奇数,后面是偶数。没要求保持相对位置不变,相对比较简单。代码class Solution {public: v

2018-01-28 15:02:45 109

原创 【剑指**】20.表示数值的字符串

20.表示数值的字符串题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。题目分析详细分析请参考 《剑指OFFER》第二版 p127这道题目非常经典,因为它

2018-01-24 14:24:49 178

原创 【剑指**】19.正则表达式匹配

19.正则表达式匹配题目描述请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配思路分析正则表达式用有限状态机的思想去

2018-01-22 10:21:38 173

原创 【剑指**】18.2-删除链表中的重复节点

18.2 删除链表中的重复节点题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5思路分析好久没有玩C++的指针,竟然忘了 delete。。。所以,本题就是要提醒一下自己,c++指针资源的释放,不要忘记delete。然后在给它指向 NULL。链表的题目相对比较简单,但是

2018-01-21 14:57:44 153

原创 【剑指**】17.打印从1到最大的n位数

17.打印从1到最大的n位数题目描述输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1,2,3一直到最大的3位数999.思路分析考查大数的表示与计算.代码代码将分为3个模块。增长数字。打印数字。/* * 面试题17. 打印从1到最大的n位数 */#include <iostream>#include <vector>using namespace std;bool i

2018-01-20 11:52:34 130

原创 浮点数的比较 C++

浮点数的比较 C++用 “==” 来比较浮点数。返回的数是不确定的。计算机对浮点数的进行计算的原理是只保证必要精度内正确即可。我们在判断浮点数相等时,推荐用范围来确定,若x在某一范围内,我们就认为相等,至于范围怎么定义,要看实际情况而已了,float,和double 各有不同例子#include #include #include using namespace st

2018-01-18 10:04:41 548

原创 13.机器人的运动范围

13.机器人的运动范围题目和代码来自书上以下是牛客网上ac过的代码class Solution {public: int movingCount(int threshold, int rows, int cols) { if (threshold 0 || rows 0 || cols 0) return 0; vectorvect

2018-01-15 11:12:03 151

原创 【实用Python】logging用法

logging 用法用例1 在调试与正式执行之间切换日志输出数量有时调试时会打印很多信息,当自己觉得程序没问题了。就要一个一个的去删除这些print语句。 但是当我们可能后来又发现有些地方出现了问题,那是不是又要写一遍print,然后再慢慢的去删除。效率很低。其实python已经提供了很好用的 logging 来代替print。使用它,我们可以先定输出日志的等级,调整日志输出的等级不同,自然就可以快

2018-01-10 13:42:54 1061

原创 【剑指**】12.矩阵中的路径

12.矩阵中的路径思路源自书上的。回溯法 但是有一个问题,我仿照书上的代码,自己写了一遍,逻辑一模一样,只是个别变量不同。但是 牛客网上 怎么搞也通不过。用书上的代码是可以通过的。对比了半天也没发现区别所在。不知道是代码的问题,还是oj的问题。我的代码class Solution {public: bool hasPath(char* matrix, int r

2018-01-09 15:14:58 174

原创 【剑指**】递归附加题-变态跳台阶

递归附加题-变态跳台阶题目描述有一个n级的台阶,青蛙一次可以跳1次,也可以跳2次,…,也可以跳n次。问青蛙跳上一个n级的台阶,总共有多少种跳法。题目分析本题是斐波那契数列的升级版。按照这样的思路去分析。 用Fib(n) 表示青蛙跳上n阶台阶的跳法数。(设定 Fib(0) = 1)当n=1时,只有1种跳法: Fib(1) = 1只有1种情况,跳1步,一种跳法;

2018-01-05 09:19:18 168

原创 【剑指**】10.斐波那契数列

10.斐波那契数列考察递归与循环的写法。思路1 递归class Solution {public: int Fibonacci(int n) { int ret = help(n); return ret; } int help(int n) { if (n <= 0) return 0; if (n == 1

2018-01-02 18:45:27 190

原创 二叉树的三种遍历-中序-前序-后序

二叉树的三种遍历:中序,前序,后序/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NU...

2017-12-28 15:58:24 222

原创 【剑指**】7.重建二叉树

7.重建二叉树题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路思路和书上的一样。 复述一下将问题分解为每次确定父节点,和左右子树集合的问题。 第一个父节点即是根节点。前序遍历:根 左 右 中序遍历

2017-12-23 20:06:31 159

原创 【剑指**】6.从尾到头打印链表

6.从尾到头打印链表题目描述输入一个链表,从尾到头打印链表每个节点的值。题目很经典,因此本文用三种方法来处理。(严格来说算2种)思路1先顺序输出链表数据,然后翻转输出的结果。/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :*

2017-12-22 09:54:27 137

原创 【剑指**】5.替换空格

5. 替换空格题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路思路就是书上的思路。两个指针操作。 传入的指针实际上上是数组头; 注意参数 length 不是字符的长度,而是数据空间的长度; 所以,字符的长度,要根据 ‘\0’ 的条件,自己去计算一遍;好久没写指针,都忘了 怎么

2017-12-21 10:45:01 128

原创 LeetCode 103. Binary Tree Zigzag Level Order Traversal

103. Binary Tree Zigzag Level Order TraversalDescriptionGiven a binary tree, return the zigzag level order traversal of its nodes’ values. (ie, from left to right, then right to left for the next level

2017-12-19 19:59:01 136

原创 LeetCode 102. Binary Tree Level Order Traversal

102. Binary Tree Level Order Traversal二叉树层序遍历 考察 BFS 的写法。 层序遍历,每行从左到右的方向输出数组元素。在这道题的基础上,还可以扩展出其他类型的层序遍历,例如 Z 字遍历。参考 103. Binary Tree Zigzag Level Order Traversal这道题属于必须掌握的题。DescriptionGiven a binary

2017-12-19 19:52:11 167

原创 LeetCode 31.Next Permutation

31.Next Permutation本题主要想介绍 inplace 的交换数据该如何实现。在c++中,可以通过位操作来实现这一点。关于位操作,常用的技巧是 一个 0XF 是四个1,这里需要16个1,所以0XFFFF。前把8作为高位,后8位作为低位。因为一般的运算,8位足够了。Implement next permutation, which rearranges numbers into

2017-12-11 19:31:49 117

原创 tf-idf使用-提取文章关键词-搜索文章

tf-idf 使用我们的目标是提取一篇文章中的关键词 or 给出关键词,在语料库中找到这组关键词最相近的文章。 两个目标要解决的问题是差不多的。今天用一种很简单却很有效的方法来解决这个问题, TF-IDF。在本文,我们选取第二种描述,即给出关键词,在语料库中找到与这组关键词最相近的文章。TF,Term Frequency 词频,表示词语在一篇文章中出现的频数。TF值越大,表示这个词在该篇文章中出现的

2017-12-06 15:05:54 2367

原创 方便好用的 Beautifulsoup

Beautiful soup 使用方法IntroductionBeautiful Soup 是一个能从html或xml文件中,提取数据的python库目前主流的版本是bs4,bs3已经不再支持本文以在 html 中查找元素为例,所测试的数据如下:html_doc = """<html><head><title>The Dormouse's story</title></head><body

2017-12-06 10:13:51 261

485控制八路继电器模块改造插线板用的的材料

自己用继电器,串口服务器做的一个网络控制插线板电源的小demo用的一些资源; DeviceManagerV1.42.exe 查找串口服务器IP; 还有两个资源,一个是继电器驱动,一个是IR_Debug.exe 这两个我忘记有没有用了,反正是一起的- -!

2015-12-17

struts2-spring-plugin-2.1.8.1.jar

struts2-spring-plugin-2.1.8.1.jar 提供给初次搭建SSH,然后莫名其妙报错的童鞋们

2014-11-30

易学c++书籍pdf

适合c++新手入门的书籍,可以下过来看看

2014-08-06

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

TA关注的人

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