自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 LongestCommonSequence 最长连续公共子序列(算法导论是最长公共子序列)

import java.util.Scanner;//最长连续公共子序列//连续i子串的特点就是如果str1[i]和str2[j]是属于某公共子串的最后一个字符,//那么一定有str1[i]==str2[j] && str1[i-1] == str2[j-1],//从矩阵中直观的看,就是由“1”构成的“斜线”代表的序列都是公共子串,//那么最长公共子串肯定就是斜线“1”最长的那个串。

2014-08-29 21:42:46 386

转载 Java nio selector

Java NIO系列教程(六) Selector原文链接 作者:Jakob Jenkov 译者:浪迹v 校对:丁一Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件。这样,一个单独的线程可以管理多个channel,从而管理多个网络连接。下面是本文所涉及到的主题列表:为什么使用Selector?

2014-08-10 20:29:44 350

转载 leetcode:Word Ladder

题目Given two words (start and end), and a dictionary, find the length of shortest transformation sequence from start to end, such that:Only one letter can be changed at a timeEach intermediate

2014-05-23 15:06:24 529

转载 判断一颗树是否为二叉搜索树

10 / \ 5 15 -------- binary tree (1) / \ 6 20

2014-05-22 16:09:57 2383

转载 leetcode: Word Search

import java.util.Arrays;import java.util.Scanner;public class WordSearch { boolean result; /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub

2014-05-21 17:02:24 574

转载 Leetcode:Generate Parentheses

import java.util.ArrayList;import java.util.Arrays;import java.util.Scanner;public class GenerateParentheses { /** * @param args */ public static void main(String[] args) { // TODO Auto-g

2014-05-21 09:55:04 465

转载 剑指offer:栈的压力、弹出序列

import java.util.Scanner;import java.util.Stack;public class IsPopOrder { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan =

2014-05-20 18:40:08 419

转载 Leetcode: Decode ways

public int numDecodings(String s) { if (s == null || s.length() == 0) { return 0; } int[] temp = new int[s.length()]; for(int i=0;i<s.length();i++){ temp[i]=0; } if (check(s.ch

2014-05-17 00:03:47 366

转载 Leetcode : EditDistance(编程之美3.3)

假如我们要将字符串str1变成str2sstr1(i)是str1的子串,范围[0到i),sstr1(0)是空串sstr2(j)是str2的子串,同上d(i,j)表示将sstr1(i)变成sstr2(j)的编辑距离首先d(0,t),0当我们要计算d(i,j)时,即计算sstr1(i)到sstr2(j)之间的编辑距离,此时,设sstr1(i)形式是somestr1c

2014-05-16 11:12:32 395

转载 Leetcode Minimum Path Sum

利用动态规划的思想求解           temp[i][j] = min(grid[i-1][j-1]+temp[i-1][j],grid[i-1][j-1]+temp[i][j-1]);

2014-05-15 17:01:00 336

转载 leetcode : Unique Paths

解法一:     利用递归进行求解 , s[m][n]

2014-05-15 15:41:43 355

转载 leetcode Climbing Stairs

解法一:  利用DP的方法,一个台阶的方法次数为1次,两个台阶的方法次数为2个。n个台阶的方法可以理解成上n-2个台阶,然后2步直接上最后一步;或者上n-1个台阶,再单独上一步。公式是S[n] = S[n-1] + S[n-2] S[1] = 1 S[2] = 2 //动态规划方法求解 int climbStairs(int n) {

2014-05-15 14:57:03 347

转载 动态规划求解最长公共子序列

动态规划法经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题。简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加。为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子问题的解存于该数组中,这就是动态规划法所采用的基本方法。【问题】 求两字符序列的最长公共字

2014-05-15 10:57:50 557

转载 求和问题总结(leetcode 2Sum, 3Sum, 4Sum, K Sum)

求和问题总结(leetcode 2Sum, 3Sum, 4Sum, K Sum)分类: leetcode2013-10-09 20:51 450人阅读 评论(0) 收藏 举报leetcode目录(?)[+]转载自:http://tech-wonderland.net/blog/summary-of-ksum-problems.html

2014-05-08 21:11:31 361

转载 LeetCode: String to Int

import java.util.Scanner;public class StringToInt { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan = new Scanner(System.in);

2014-05-07 22:20:40 384

转载 LeetCode: TWO SUM

//思路,使用public class Solution { public int[] twoSum(int[] numbers, int target) { int[] source = new int[numbers.length]; for (int i = 0; i < numbers.length; i++) { source[i] = numbe

2014-05-06 22:20:46 376

转载 m*n的方格,从左下角走到右上角,只能向右和向上,总共的路径

import java.util.Scanner;public class LeftDownToRightUp { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan = new Scanner(Syste

2014-04-25 17:11:52 2940

转载 汉诺塔问题(递归算法)

移n个盘是已移n-1个盘为条件的,两者的共同点是移盘。所以可以用f(n)表示移n个盘,f(n-1)表示移n-1个盘,那么移n个盘和移n-1个盘有什么关系呢?这就需要预先分析问题才能得出具体的关系在这个问题中,把n个盘从a移到c需要三个步骤来完成。1.n-1个盘从a移到b2 1个盘从a移到c3 n-1个盘从b移到c已知n-1个盘从a移到b是可行的,为什么?因为移1个盘是可行,那么移2个

2014-04-25 10:44:23 548

转载 找出一个数组中只出现一次的数

一个数组含有两个只出现一次的数,其余据

2014-04-24 21:16:05 495

转载 android进程间通信(IPC--Inter Process Communication)

阿里巴巴一面

2014-04-14 22:00:32 499

转载 剑指Offer二叉搜索树与双向链表

class BinaryTreeNode { int value; BinaryTreeNode pLeft; BinaryTreeNode pRight; BinaryTreeNode pNext;}class BinaryTree { public BinaryTreeNode CreateBinaryTreeNode(int value) { BinaryTreeNode

2014-04-10 11:22:05 357

转载 字符串的排列组合(组合需无重复字母)

package AimToOffer;import java.util.Iterator;import java.util.Scanner;import java.util.Stack;//字符串的排列组合public class Combination { /** * @param args */ public static void main(String[] ar

2014-04-09 19:13:44 671

转载 TCP流量控制,拥塞控制,差错控制

流量控制:1、流量控制是管理两端的流量,以免会产生发送过块导致收端溢出,或者因收端处理太快而浪费时间的状态。用的是:滑动窗口,以字节为单位2、窗口有3种动作:展开(右边向右),合拢(左边向右),收缩(右边向左)这三种动作受接收端的控制。合拢:表示已经收到相应字节的确认了展开:表示允许缓存发送更多的字节收缩(非常不希望出现的,某些实现是禁止的):表示本来可以发送的,现在不能发

2014-04-07 11:32:07 694

转载 Malloc与new 的区别

Malloc与new 的区别1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。 2,对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把

2014-04-04 23:38:09 385

转载 堆和栈的区别

内存分配---堆和栈  2010-04-12 20:03:13|  分类: c/c++/MFC/window|举报|字号 订阅1.堆和栈的区别          1、管理方式不同;             2、空间大小不同;             3、能否产生碎片不同;             4、生长方向不同;        

2014-04-04 22:30:13 707

原创 LeetCode : Unique Binary Search Tree

import java.util.Scanner;public class UniqueBinarySearchTree { int count = 0; /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner sca

2014-04-04 16:18:12 390

空空如也

空空如也

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

TA关注的人

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