自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 SQL Server数据库

第一次用SQL Server,虽然和mysql有点不一样。总的来说很好用了。最棒的是SQL Management Studio还是很赞的。接下来,玩玩SQL Sever了。首先创建一个数据库(Database),CREATE DATABASE HelloWorld;接下来,在HelloWorld数据库中添加一个学生表格(Table),这个表格包含一个Id

2015-08-14 11:32:31 512

原创 设计模式笔记之三(Iterator Pattern):

Iterator Pattern, 即迭代器模式,它让使用者通过接口循环访问容器中的元素,且不用了解底层的实体。加入我们现在想访问微信和Line的用户,且打印出相关信息。如大家所知,微信和Line属于不同公司,因此对用户列表的设计也有所不同。假设微信用了LinkedList,Line用了数组,要打印用户列表,就必须分别重新实现PrintLinkedList 和PrintArra

2015-06-16 10:05:23 369

原创 设计模式之二(decorator pattern)

每次从海淀黄庄坐地铁都会经过一个卖煎饼的小店。一个标准煎饼(7块钱):一个鸡蛋+一片菜叶子+脆饼 有个灵活的地方是,可以加自己喜欢的材料,比如,加一个鸡蛋,需要多付1块钱。加一个鸡排需要多加4块钱。作为KB的IT民工,就像能不能设计一个系统来自动计算煎饼的系统。刚开始设计的时候,设计方案如下: 先设计一个标准煎饼类,然后不同口味的继承标准类别。然而,一天排队

2015-06-09 08:09:23 560

原创 设计模式笔记一(strategy pattern)

正式步入码工界,遇到第一个问题就是Refactor老的project,让支持新的功能和策略。无路可退,便踏上了学习设计模式的征程~路漫漫其修远兮....言归正传,第一个学习的对象是strategy pattern,策略模式。个人知识有限,于是乎,请教一下Wikipedia,找到其定义如下:策略模式作为软件设计模式,指对象有某个行为,但在不同场景下,该行为有不同的实现算法

2015-06-03 15:08:33 482

原创 缩写i.e. vs e.g.

刚开始写论文的时候,i.e. 和 e.g.经常混掉。于是去请教boss,boss解释如下。i.e.是拉丁语 id est的缩写,相当于英语in other words or namely (用于转述)。e.g.是拉丁语exempli gratia的缩写,相当于example(举例子)。个人脚的很容易理解,在此分析~

2015-04-29 13:45:03 454

原创 LeetCode DNA重复序列

All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: "ACGAATTCCG". When studying DNA, it is sometimes useful to identify repeated sequences within the DNA.Wri

2015-02-12 09:41:57 2709 1

原创 基数排序

基数排序的基本思想是,先通过个位数字排序,让后根据十位数排序,,重复以上知道排序结束。读Java算法教材,上面通过Queue来保存中间值,然而优先序列加入新元素需要log(n)的复杂度,总觉得应该有数组来代替。其次,好多实现代码都需要给定最大的位数,要单独计算最大位数的话需要O(n)的复杂度,为什么不增加一个计数器来搞定呢?一下是Java实现版本,目前只支持任意正整数排序。如果有更好的

2015-02-04 14:39:51 356

原创 反转栈

给定一个堆栈【1, 2, 3】,反转为【3, 2, 1】import java.util.Stack;public class ReverseStack { public static void main(String[] args) { Stack stack = new Stack(); for (int i = 0; i < 10; i++) { st

2015-01-31 16:53:05 340

原创 0-1背包问题

0-1背包问题是很经典的一个题目。具体细节再次不叙了。本文给出动态编程解法。public class Knapsack { public static void main(String[] args) { int c = 10; int[] weights = { 2, 2, 6, 5, 4 }; int[] prices = { 6, 3, 5, 4, 6 };

2015-01-29 10:36:30 395

原创 maxSum

最大字段和问题:给定有n个整数组成的序列a_1, ..., a_n, 求该序列\sum_{k=i}^j a_k。或许最先想到的爆破发,遍历所有的子序列而找出最大值。然而这个时间复杂度太高O(n^3)。当然可以用一些技巧而时间复杂度降到n^2。如果了解合并排序(Merge sort),我们也可以发现该问题和merge sort很相像。我们把一个大数组均匀的分成两半,这样最大子

2015-01-28 10:25:22 317

原创 LeetCode N阶乘的尾数为0的个数

原题如下Given an integer n, return the number of trailing zeroes in n!.Note: Your solution should be in logarithmic time complexity.分析,N的阶乘 n!=5^m * 2^k * ... ,因此只要我们找出m和k,并且取最小值就是末尾0的个数。进一步

2015-01-27 10:19:25 2037

原创 Reverse LinkedList (I, II)

反转列表I,Java实现如下: public static Node reverse(Node root) { Node head = null; Node next = null; Node curr = root; while (curr != null) { next = curr.next; if (head == null) { head

2015-01-21 17:15:42 658

原创 Shell Sort

Shell sort是对插入排序的扩展,但是比插入排序速度快很多。做了一个有趣的对比试验,比较shell sort和merge sort。先把需要排序的数组分为大(>1M),中(1K假如我们的所要排序的数组相对不是特别大,shell sort是个不错的选择。另外,shell sort不需要额外分配空间(merge需要分配额外空间)。一下是shell sort 的Java 实现。

2015-01-17 10:11:29 546

原创 合并排序算法 (Merge Sort)优化

Merge Sort很受欢迎 ,也经常出现在面试过程中。之前写过一个Merge sort的一个算法(算法和大部分算法教程一样),本文对Merge sort做了些优化。测试显示比之前的版本速度提高不少。Merge Sort的主要思想是把一个大数组分解成小数组,分别对小数组进行sort,然后把sort好的两个小数组合并起来。在合并的时候一般需要额外的空间来从放中间值。因此,分配空间的次

2015-01-17 09:48:40 2666

原创 链表排序

对链表进行合并算法排序,基本s

2014-11-19 11:31:28 348

原创 LeetCode 循环链表II

判断一个链表是否有循环,如果有返回第一相遇节点,否则返回NULL。jie'ti

2014-11-14 23:29:08 480

原创 LeetCode 循环链表判断

判断一个单链表是否循环.Java version/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = n

2014-11-14 23:03:54 730

原创 优先序列

堆经常用来做优先队列( priorit

2014-10-30 20:32:11 1620

原创 Heap 排序

Heap排序想必大家都知道。

2014-10-30 18:59:09 603

原创 LeetCode 从排序好的列表中删除重复元素

从排序好的列表中删除重复元素java 版本如下

2014-10-23 22:49:43 468

原创 LeetCode 从链表中删除倒数第N个节点

从单链表中删除倒数第N个节点,要求之遍历一遍lia

2014-10-23 11:24:12 3539

原创 LeetCode 二叉树的最小深度

计算二叉树的最小深度。最小深度定义为从root

2014-10-20 19:13:13 5076

原创 Leetcode, 组合序列生成

给定一个n和k,给出c_{n}^k的所有组合。一下是C++实现。

2014-10-20 18:43:38 669

原创 Leetcode 平衡树判别

判断一颗二叉树是否平衡。/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Soluti

2014-10-20 17:42:18 386

原创 LeetCode 对称树解法

Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For example, this binary tree is symmetric: 1 / \ 2 2 / \ / \3 4 4 3But the f

2014-10-20 07:44:54 565

原创 判断链表是否循环,找出循环点

判断链表是否循环,找出循环点。例子:

2014-10-19 02:32:15 608

原创 两个链表相加

给定两个链表,每个节点保存一位数字,shu'zi

2014-10-18 21:33:52 477

原创 井冈山和梁山的异同

成王败寇!

2014-10-18 13:44:15 1003

原创 最后一个字的长度。

给定一个字符串,包含大小写英文字母,计算最右一个字的长度。

2014-10-14 14:04:49 628

原创 二叉树遍历算法,前序

/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Soluti

2014-10-14 13:27:00 361

原创 Binary Tree Level Order Traversal, 二叉树层级遍历

[LeetCode] Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).For example:Given binary tree {3

2014-10-14 13:00:10 1189

原创 Max Points on a line ,在二维平面寻找共线的最多点

LeetCode 上面的题目。

2014-10-13 19:42:45 684

原创 HMM--隐马尔科夫模型 (1)

想必大家都知道隐马尔科夫模型的重要性吧。本文简单介绍我对HMM的理解,有什么问题相互学习,共同进步。贼哈哈~~~一个简单的例子:假设每天的天气要么晴天,要么下雨。(有人会说太扯淡了,还有阴天什么,多云什么的。)不过前面说了简单的例子,所以越简单越好,只是为了说明概念。我们分别用R:雨, D:晴。根据砖家的经验当前的天气至于前一天的天气相关,并且有如下关系:P(R|R)=0.

2014-10-09 13:35:43 364

原创 旋转整数

Reverse digits of an integer.Example1: x = 123, return 321Example2: x = -123, return -321j

2014-10-09 13:21:15 538

原创 相同树判断

Given two binary trees, write a function to check if they are equal or not.Two binary trees are considered equal if they are structurally identical and the nodes have the same value.判断两颗二叉树

2014-10-09 13:05:53 298

原创 最深二叉树 (Maximum Depth of Binary Tree)

Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

2014-10-09 12:51:07 573

原创 单独数问题

Given an array of integers, every element appears twice except for one. Find that single one.Note:Your algorithm should have a linear runtime complexity. Could you implement it without using e

2014-10-09 12:41:23 433

原创 旋转列表

Given a list, rotate the list to the right by k places, where k is non-negative.For example:Given 1->2->3->4->5->NULL and k = 2,return 4->5->1->2->3->NULL.翻译如下

2014-10-09 12:18:30 357

原创 波兰式解析Evaluate Reverse Polish Notation

本文介绍波兰式解析算法。Leet

2014-10-08 22:01:25 400

原创 Java StringBuilder和StringBuffer的比较

StringBuilding 和 StringBuffer是Java中常用的两个类。功能都很强大。 二者的最大不同是StringBuilder非同步(non-synchronized),而StringBuffer则是synchronized。想必大家都知道同步与非同步,用大白话就是,StringBuffer对多线程更安全。俗话或鱼与熊掌不能兼得。相比之下,StringBuilder速度

2014-10-08 00:58:19 518

空空如也

空空如也

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

TA关注的人

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