自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【leetcode每日一题】203.Remove Linked List Elements

题目:Remove all elements from a linked list of integers that have value val.ExampleGiven: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6Return: 1 --> 2 --> 3 --> 4 --> 5解析:声明一个节点result

2015-08-31 22:19:18 737

原创 【leetcode每日一题】24.Swap Nodes in Pairs

题目:Given a linked list, swap every two adjacent nodes and return its head.For example,Given 1->2->3->4, you should return the list as 2->1->4->3.Your algorithm should use only constant s

2015-08-31 22:10:21 690

原创 【leetcode每日一题】149.Max Points on a line

题目:Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.解析:题目要求是给定n个2维的点,求出总共有多少个点在同一条直线上。由数学知识可知,给定三个点a,b,c,如果三个点在一条直线上,则a和b的斜率与c和d的斜率是相同的。用哈希表来做,针对每个点

2015-08-28 15:11:14 1063

原创 【数据结构学习】-堆与堆排序

堆是一种非常有用的数据结构,可用来设计高效的排序算法和优先队列。一个堆是一颗具有如下性质的二叉树:1)它是一颗完全二叉树;2)每个节点都大于等于其任何子节点。如上图是一个最大堆,我们可以用数组来描述它。根节点在数组位置0,两个孩子在位置1和2。对于位于位置i的节点,其左孩子在2i+1,其右孩子在2i+2,其父节点在(i-1)/2。利用堆进行排序,是堆一个很重要的用途。下面是堆排序的代码

2015-08-27 16:30:28 1114

原创 【数据结构学习】-二叉树的概念与遍历

链表、栈或队列都是线性结构,包含一个数据元素序列。而二叉树是一种层次结构。一颗二叉树要么为空,要么由一个数据元素(称为跟)和两颗独立的二叉树(称为左子树和右子树)。某个节点的左(右)子树的根节点称为该节点的左(右)孩子节点。两颗子树均为空的节点称为叶子节点。搜索二叉树:其左子树任意节点的值都小于此节点的值,其右子树中任意节点的值都大于此节点的值。完全二叉树:如果一颗二叉树除最后一层外都保证

2015-08-27 12:05:00 1094

原创 【数据结构学习】-链表

链表是一种数据结构,当要保存和管理的数据元素的数目变化较大时,使用链表效率会很高。在链表中,每个元素都保存在一个称为节点的数据结构中。当新的元素加入列表时,创建新的节点来保存元素,链表中所有节点通过指针串联在一起。对于一个链表,首先要掌握链表的基本操作,比如插入、删除、判断一个元素是否在链表中等等。以下是对链表进行基本操作的代码和解析。#include using namespace s

2015-08-26 12:00:25 1174

原创 【leetcode每日一题】NO257.Binary Tree Paths

题目:Given a binary tree, return all root-to-leaf paths.For example, given the following binary tree:1/ \      2   3       \        5All root-to-leaf paths are:["1->2->5", "1->3"]

2015-08-25 21:38:29 705

原创 【算法学习笔记】-二分查找算法

二分搜索是一种常用的搜索方法,它要求数组中的元素必须是有序存放的。不失一般性,我们假定数组元素按升序存放。二分搜索方法首先将关键字与位于数组中央的元素进行比较,比较结果有三种情况:1)如果关键字小于中央元素,我们只需要继续在数组的前半部分进行搜索。2)如果关键字与中央元素相等,则搜索结束,找到匹配元素。3)如果关键字大于中央元素,我们只需要继续在数组的后半部分进行搜索。二分搜索的代

2015-08-25 17:28:07 1018

原创 【算法学习笔记】-排序算法

排序算法常见的有:直接插入排序,归并排序,堆排序,快速排序和冒泡排序等。它们的性能如下表所示:注:排序算法的稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;否则称为不稳定的。比较重要的三种排序方法:快速排序、归并排序和

2015-08-25 16:54:04 881

原创 【STL容器学习】-迭代器

STL中的容器类广泛使用迭代器,迭代器是一种对象,使用它可方便地对容器中的元素进行遍历。迭代器与内置指针很相似,都提供了一种访问和操纵容器中元素的方便途径。迭代器可以分为以下5个类型:输入迭代器:用于从容器中读取元素,每一步只能沿向前的方向移动一个元素。输出迭代器:用于向容器中写入元素,每一步只能沿向前的方向移动一个元素。向前迭代器:包含输入输出迭代器的所有功能,既支持读操作又支持写操

2015-08-25 11:00:30 4287

原创 【STL容器学习】-容器适配器

STL提供了三种容器适配器:stack、queue和priority_queue。他们都是由顺序容器变化而来,用于处理特殊情况。本文主要讲一下stack和queue的用法。栈是一种先进后出的容器。栈支持的函数有以下几种:Push(element):将元素添加到栈顶。Pop():删除栈顶元素。Top():返回栈顶元素,不删除它。Size():返回栈的大小。Empty():若栈

2015-08-24 21:57:34 3571

原创 【STL容器学习】-关联容器与map的使用方法

STL提供了4个关联容器:set、multiset、map和multimap。这些容器提供了通过关键字快速存储和访问数据元素的能力。Set和map不允许有重复关键字,而multiset和multimap允许重复关键字。关联容器的几个共同函数如下:find(key):搜索容器中具有指定关键字的元素,返回指向此元素的迭代器。lower_bound(key):搜索容器中具有指定关键字的第一个元素

2015-08-24 18:37:51 4106

原创 【面试】58同城-Linux后台开发实习生

昨天下午去面试了58同城的Linux后台开发实习生,发挥的很不好,很多基础问题都答不上来。马上要校招了,还是要加强基础学习啊!血的教训,基础非常重要!!!1.写出二叉树的深度优先遍历和广度优先遍历。这其实是一道特别基础的算法题,博主当时是用队列实现的广度遍历,用递归实现的深度遍历。后来面试官又问我,不用递归怎么来实现深度遍历,当时二了,没有想过来,其实和广度遍历类似,用栈来实现就好了。代码

2015-08-24 12:12:44 1806

原创 Python每日一个小程序

前几天上网,收集了20多道Python练习题。这些练习题还是很有价值的,正好最近忙着复习准备校招,可以用来练手。我会把每道题都写一篇博客详细阐述解题思路和源代码,在每道题目后面附上博客地址。希望大家对我的代码能给予指正,我们共同努力,共同进步。后序有好的题目或者解题思路,我还会在这篇博客后面追加。第 0000 题:将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那

2015-08-18 09:36:49 8060

原创 【STL容器学习笔记】-顺序容器

STL提供了三个顺序容器:vector、list和deque。Vector和deque都是用数组来实现的,list是用链表来实现的。关于三者的实现原理和各自应用的场景我们做一下分析。1.vector就是动态数组,它是在堆中分配内存,如果vector中元素个数大于当前大小时,就会再分配内存。它拥有一段连续的内存空间,并且起始地址不变,因此它能很好地支持随机访问元素,即[ ]操作符。vector对

2015-08-18 09:31:26 3822

原创 【Python学习笔记】-生成激活码

很多收费软件都需要用激活码来注册,限时促销活动也需要填写激活码来进行。激活码应用非常广泛,本文主要讲解如何用Python语言生成我们常见的激活码。激活码一般是由26个大写字母和10个数字任意组合而成,长度为12位或者16位的居多。一个激活码里的字符是可以重复的,而且必须要保证激活码是不能重复的。可以分别随机生成16个字符,然后组成一个字符串,放在字典中,通过字典来判断是否有重复的激活码。以下代码是

2015-08-18 09:26:23 9764 1

原创 【Python学习笔记】-APP图标显示未读消息数目

以小米手机系统为例,当安装的某个APP有未读消息时,就会在该APP图标的右上角显示未读消息的数目。本文主要讲解如何用Python语言实现图标显示未读消息的数目。首先,还是要用到Python中PIL库,关于Linux下如何安装PIL库,请大家参考这篇博客:http://blog.csdn.net/kevin_zhai/article/details/47720721,里面有详细的安装过程。实现的原理

2015-08-17 13:44:25 5007

原创 【Python学习笔记】-自动发送邮件脚本

自动发送邮件功能是我们经常要用到的,比如每天定时统计报表信息,然后自动发送给运营人员,协助运营人员进行业务数据分析。本文是用Python写的一个自动发送邮件的脚本,调用函数时,直接把发件人邮箱地址、密码、收件人邮箱地址、邮件标题、内容等信息传递给函数,即可实现自动发送邮件功能。脚本代码如下:# -*- coding: UTF-8 -*-import sys, os, re, urllib

2015-08-17 09:43:06 17995 3

原创 【Python学习笔记】-生成验证码图片

验证码的功能一般是防止使用程序恶意注册、暴力破解或批量发帖而设置的。所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。本文就将介绍如何用Python语言生成验证码。生成验证码要对图片进行操作,在Python中对图片操作就要用到PIL库。下面先简单介绍一下在Linux下

2015-08-17 09:39:19 6138

原创 【leetcode每日一题】NO92.Reverse Linked List II

题目:Reverse a linked list from position m to n. Do it in-place and in one-pass.For example:Given 1->2->3->4->5->NULL, m = 2 and n = 4,return 1->4->3->2->5->NULL.Note:Given m, n satisfy

2015-08-17 09:31:29 632

原创 【leetcode每日一题】NO86.Partition List

题目:Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x.You should preserve the original relative order of the nodes in each

2015-08-16 09:33:46 601

原创 【leetcode每日一题】NO109.Convert Sorted List to Binary Search Tree

题目:Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.给定一个升序排列的单链表,把它转化为一个搜索二叉树。解析:搜索二叉树的左子节点要小于父节点,右子节点要大于父节点。单链表是升序的,先找出链表的中间节点,作为二叉树的根节点。

2015-08-15 22:34:01 582

原创 【学习笔记】C++操作redis库

前段时间,在写一个后台服务框架,底层要用到redis的操作。因为编程语言用的是C++,而且是在Linux下,因此想要操作redis,必须要通过hiredis接口来实现。下面将介绍一下hiredis接口的用法。hiredis主要包括4个方法,灵活运用这4个方法,就可以对redis进行操作了。1. redisContext* redisConnectWithTimeout(const char

2015-08-15 20:26:10 9797

原创 【leetcode每日一题】NO160.Intersection of Two Linked Lists

题目:Write a program to find the node at which the intersection of two singly linked lists begins.For example, the following two linked lists:A: a1 → a2↘c1 → c2 → c3↗ B: b1 → b2 → b3begi

2015-08-15 09:08:46 560

原创 【leetcode每日一题】NO142.Linked List Cycle II

题目:Given a linked list, return the node where the cycle begins. If there is no cycle, return null解析:根据141题的思路,声明一个慢指针和一个快指针,若存在环,则肯定相遇。借用一篇博客里的图,讲解一下如何求环开始节点。如下图所示:快慢指针相遇时,快指针走的距离为:f=x+y+z+y;慢指针走的

2015-08-14 09:02:41 744

原创 【实习感悟】51用车算法实习生

上周刚结束了在51用车持续两个月的实习,虽然只是一家创业公司,不过依然收获颇多。下面就写一下实习期间自己的收获和体会吧。1.最大的感悟:创业不易,且行且珍惜。公司产品是做顺风车的,在滴滴推出顺风车前,市场占有率一直是位居前三的。我去的时候,公司刚拿到了百度C轮融资,订单量也每日猛增,本来前途一片大好。但是在6月底7月初,滴滴推出顺风车后,在无力与滴滴烧钱血拼的背景下,订单量每天都在减少。上周二

2015-08-13 10:58:49 868 1

原创 【leetcode每日一题】NO206.Reverse Linked List

题目:Reverse a singly linked list.即单链表反序。解析:链表反序是很常见的题目,不过多解释了,直接上代码。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : va

2015-08-13 10:13:01 770

原创 【面试总结】百度知道后台开发实习生

今天去百度知道面试后台开发实习生,大致流程:自我介绍,聊了很多项目相关的东西,问得很多,不过都是简历上的,然后问了一些算法题和基础知识,最后惯例问有什么要问他的。题目如下:(1)介绍一下常见的排序算法以及复杂度,用代码实现快排。常见的排序算法,冒泡排序,复杂度O(n^2),归并排序、堆排序、快排,都是O(nlgn)。快排实现的代码如下:int partition (int A[],

2015-08-12 19:21:33 1373

原创 【leetcode每日一题】NO21.Merge Two Sorted Lists

题目:Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.解析:与有序数组合并类似,先声明一个指针,指向值小的头结点,再遍历两个指针,依次比较大小。代码:/*

2015-08-12 09:15:56 624

原创 【leetcode每日一题】NO83.Remove Duplicates from Sorted List

题目:给定一个有序链表,删除重复值的节点,使得每个值只出现一次。解析:链表是有序的,我们可以声明两个指针,一个指向当前节点,一个指向下一个节点,判断这两个节点指向的值是否相等,如果相等,则删掉节点。代码:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNo

2015-08-11 22:01:05 675

原创 【leetcode每日一题】NO19.Remove Nth Node From End of List

题目:Given a linked list, remove the nth node from the end of list and return its head.即给定一个链表,删除倒数第n个节点。解析:可以声明两个指针,让指针A先指向第n个节点,指针B指向第1个节点,两个指针同时遍历链表,当指针A指向最后一个节点时,指针B真好指向倒数第n个节点。注意:要判断n和链表长度的关系。代码:/*

2015-08-07 20:53:55 714

jrebel插件

jrebel插件,将解压后的文件方到Eclipse/dropins文件夹下,在tomcat服务器,点击Open launch configuration,Arguments/VM arguments中添加以下两行: -javaagent:E:\eclipse\dropins\jrebel5.5.2\jrebel.jar -noverify 路径为自己的Eclipse路径,即可使用

2016-08-30

python自动发送邮件脚本

本脚本可以实现自动发送邮件

2016-07-27

C++实现链表基本功能大代码

用C++实现链表的基本功能,包括创建链表、插入结点、删除结点、链表反序等功能。

2016-01-10

利用Python scrapy框架抓取北邮人论坛十大热门帖子

利用scrapy框架抓取北邮人论坛十大热门话题

2015-12-22

空空如也

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

TA关注的人

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