- 博客(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
转载 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 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
转载 剑指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关注的人