- 浏览: 36519 次
- 性别:
- 来自: 南京
最新评论
文章列表
DP方式求解:
#include <iostream>
using namespace std;
/**
* 问题描述:两个字符串,求解他们的最长公共子序列,子序列不要求连续
*
* 分析这个问题,我们可以发现有子结构,可以将X,Y两个字符串的最长公共子串
* 的问题转换成更小的子问题。而且这个问题的求解过程有重叠子问题。根据这两个
* 性质我们确定尝试用DP来解决。
* 首先定义状态,f(m,n),代表字符串X以Xm结尾的子串与字符串Y以Yn结尾的子串的
* 最长公共子序列。
* 如果Xm == Yn,那么问题转换成求解f(m-1,n-1),且f(m,n ...
- 2012-11-11 22:48
- 浏览 326
- 评论(0)
#include <iostream>
using namespace std;
//为了方便,将a和b的长度固定下来,这样就不用动态创建数组了
#define M 6
#define N 3
int dp[M][N] = {0};
/**
* 问题描述: 两个字符串如果可以根据添加,删除,修改一个字符串来变成另一个字符串,则
* 说这两个字符串距离为1. 现在给出两个字符串,求出他们之间的距离。
* abcehk和bdh的距离。
* 要将一个字符串变成另一个,这里假设将B变换成A,很明显这个问题有子结构。
* 要求f(m,n),即字符串A与字符串B的距离: ...
- 2012-11-11 21:49
- 浏览 340
- 评论(0)
比如新建一个word,写了一行字,然后点击保存。
发生了什么?这个数据会不会马上写到磁盘上?
1 文件系统:
文件系统是一套实现了数据的存储、分级组织、访问和获取等操作的抽象数据类型(Abstract
data type)。
文件系统是一种用于向用户提供底层数据访问的机制。它将设备中的空间划分为特定大小的块(扇区),一般每块512字节。数据存储在这些块中,大小被修正为占用整数个块。由文件系统软件来负责将这些块组织为文件和目录,并记录哪些块被分配给了哪个文件,以及哪些块没有被使用。文件系统各式各样,如fat,ntfs,ext2,ext3等。
内核中文件系统会将虚拟文件系统中的 ...
- 2012-11-09 23:00
- 浏览 332
- 评论(0)
参考:http://zhan.renren.com/seochina?gid=3602888497994264527&checked=true
1 域名到IP地址的转换:
·浏览器缓存 – 浏览器会缓存DNS记录一段时间。 有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存个自固定 ...
- 2012-11-09 21:46
- 浏览 313
- 评论(0)
=== .c ===
预处理 -》.c (源文件)
编译-》.s/asm (汇编程序)
汇编-》.o/obj 目标程序(二进制文件)
链接-》.exe可执行程序 (二进制文件)
(1) 为什么要生成汇编,而不是直接从源文件编译成机器指令(二进制代码)?
首先,汇编语言作为 ...
- 2012-11-09 21:04
- 浏览 1013
- 评论(0)
今天被北京XXX公司(著名广告投放公司)鄙视了。面试官是个中年男子,很帅气,虽然面试官人很好,但是还是让我心情不爽。
一进去就说先来个组成原理的题吧: CPU,主存,北桥,南桥,速度不一致,缓存之类的,这个很简 ...
- 2012-11-07 23:20
- 浏览 334
- 评论(0)
#include <iostream>
using namespace std;
/**
* 递归实现将二叉排序树BST转换成排序的双向链表。
* 递归左子树,将左子树的转换成的链表的尾节点和当前根节点连接,
* 然后当前根节点更新尾转换好链表的尾节点。 递归右子树
*/
typedef struct node{
int value;
struct node *lchild;
struct node *rchild;
}NODE;
NODE *createNode(int v){
NODE *p = (NODE *)malloc(sizeof(N ...
- 2012-11-04 22:24
- 浏览 456
- 评论(0)
package someTest;
class SSSuperClass{}
class SSSubClass extends SSSuperClass{}
public class TestDuplicate {
public void function(Object o){ //方法1
System.out.print("Object\n");
}
public void function(int[] array){ //方法2
System.out.print("int[] array\n") ...
- 2012-11-04 19:37
- 浏览 352
- 评论(0)
DP的方式求解:
#include <iostream>
using namespace std;
#define M 9
#define N 11
//如果动态传进m和n的话,数组lcs赋值只能通过指针,这样太麻烦
int lcs[M][N];
/**
* 最长公共子串(LCS)
* 状态转移方程:
* f(i,j) =
0 a[i] != b[j]
f(i-1,j-1)+1 a[i] == b[j]
其中f(i,j)表示串A以a[i]结尾与串B以b[j]结尾的最长公共子串
* 优化: 这里时间和空间都是O(M*N)。
* 注 ...
- 2012-11-04 18:05
- 浏览 320
- 评论(0)
#include <iostream>
using namespace std;
/**
* 给定一个序列,判断其是不是某个BST的后序遍历输出
* 思想: 根据在位于序列最后的根节点,将序列划分成两个part。
* 然后判断后半序列是否都比root大,如果不是,则返回false。(前半序列一定都比root小)
* 如果当前序列满足BST左右子树两个part的性质,继续递归两个part。
*/
bool judgepostorder(int *a, int n){
//注意边界条件
if(n ==0 || n == 1) return true;
...
- 2012-11-04 11:35
- 浏览 267
- 评论(0)
#include <iostream>
using namespace std;
/**
* 对链表进行原地排序
* 回忆数组归并最重要的就是:找到数组中点,以及归并两个有序数组。
* 类似地这里有两个关键点:
* (1)找到链表的中间节点,用一快一慢两个指针往前走;
* (2)归并两个已经排好序的链表,指向归并结果的指针总是变化的,所以需要返回一个指向归并好的链表的头指针;
* (3)最后注意,将链表划分成两截的时候,还应该让前半部分的最后一个节点指向空(截断),这样递归各自部分就不需要还去
* 指明到哪个节点结束了。
*/
typedef struc ...
- 2012-11-03 22:26
- 浏览 314
- 评论(0)
/**
*
*/
package innerClass;
/**
* 结论:
* 静态环境中不能引用非静态域。
* 静态方法/嵌套类只能声明在静态的或者顶层结构中
* 非静态方法/内部类可以放置在任何位置,任何一层
* */
public class InnerClassAccess {
private float f = 1.0f; //非静态字段
class InnerClassA{
//static void method(){}//静态方法只能声明在静态的或者顶层的结构里面
//static class TestA{} ...
- 2012-11-03 12:49
- 浏览 513
- 评论(0)
#include <iostream>
using namespace std;
void testPointer(){
int a[] = {1,2,3,4,5};
int *p = a; //本身就是int型指针
// int *q = &a; //转换成int型指针
int *t = &a[0]; //本身就是int型指针
p++;
// q++;
t++;
printf("*p:%d\n",*p); //2
// pr ...
- 2012-11-02 22:54
- 浏览 304
- 评论(0)
#include<iostream>
using namespace std;
class A{
public:
virtual ~A(){f();}
virtual void f(){cout<<"This is A virtual"<<endl;}
void g(){cout<<"This is A no-virtual"<<endl;}
};
class B:public A{
public:
~B(){f();}
virtual void f(){c ...
- 2012-11-02 21:54
- 浏览 290
- 评论(0)
客户端:
#include "apue.h"
#include <netdb.h>
#include <sys/socket.h>
#include <fcntl.h>
int main(void){
int c_fd;
struct sockaddr_in s_addr; /*linux套接字地址需转化成通用sockaddr结构地址*/
char buf[MAXLINE] = "hello server!\n";
...
- 2012-11-01 23:26
- 浏览 309
- 评论(0)