自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 资源 (2)
  • 收藏
  • 关注

原创 leetcode: LRU Cache

import java.util.Map;import java.util.HashMap;public class LRUCache {    Map cacheMap;ListNode head;ListNode tail;public int cap;public int last;    public LRUCache(int capac

2014-10-10 20:04:21 547

原创 leetcode: Unique Paths

public class Solution { public int uniquePaths(int m, int n) { int i; double result=1.0; n=n-1; m=m+n-1; if(m-n<n) n=m-n; for(i=1;i<=n;i++)

2014-07-01 22:06:20 450

原创 leetcode: Rotate List

/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */public

2014-06-19 15:13:24 481

原创 leetcode: Permutation Sequence

这个题要求全排列的第几个。首先我们知道,A(n,m)=n!/(n-m)

2014-06-11 15:26:55 505

原创 如何实现ArrayList<E>泛型的复制

问题解释:现在一个类

2014-05-26 18:03:48 2164

原创 【算法】关于最小子串和的扩展

子串是连续的,子序列是不连续的。最小zichuanhe

2014-05-19 15:21:19 619

原创 leetcode: Insert Interval

因为原来的intervals是不想交且的,所以对原来的每一个区间,和要插入的区间对比,考虑如下情况:绿色表示当前的intervals[i],黑色表示新的interval。/** * Definition for an interval. * public class Interval { * int start; * int end; * In

2014-05-15 17:23:12 399

原创 leetcode:Reverse Words in a String

public class Solution { public static String reverseWords(String s) { String rst=""; int n=s.length(); int i,j; for(i=n-1;i>=0;i--) { if(s.charAt(i)!=' ') { j=i; while(j>=0 &&

2014-05-10 23:27:17 533

原创 leetcode: Merge Intervals

/** * Definition for an interval. * public class Interval { * int start; * int end; * Interval() { start = 0; end = 0; } * Interval(int s, int e) { start = s; end = e; } * } */

2014-05-10 22:08:59 438

原创 leetcode: Jump Game

public class Solution {    public boolean canJump(int[] A) {       int i,j;        int prev0=-1;        int n=A.length;        int max=0;        for(i=0;i        {        if(A[i]==0)

2014-05-10 21:25:41 364

原创 leetcode: Maximum Subarray

public class Solution { public int maxSubArray(int[] A) { int n=A.length; int[] F=new int[n]; int max,i; F[0]=A[0]; max=A[0]; for(i=1;i<n;i++) { if(A[i]>A[i]+F[i-1]) F[i

2014-05-08 21:45:48 388

原创 leetcode: Spiral Matrix

考虑四种情况:设m为有几横行,n为有几竖列,第一种情况是m>n && n%2==1;第二种情况是m>n && n%2==0;第三种情况是m第四种情况是m分别算出每一中情况的终点[endx,endy]每次找一下一个点,只需要记录当前的方向(右,下,左,上),还有当前属于第几层,抵拢倒拐,碰到终点返回。public class Solution {

2014-05-08 21:31:57 480

原创 leetcode: N-Queens

public class Solution { public static ArrayList solveNQueens(int n) { int[] trace=new int[n]; int i,j,x; ArrayList rst=new ArrayList(); String[] B=null; char[] Bline=new char[n]; for

2014-05-08 19:00:56 388

原创 leetcode:Pow(x, n)

public class Solution { public static double pow(double x, int n) { if(x!=0 && n==0) return 1; if(x==0 && n>0) return 0; if(n==1 || x==1) return

2014-05-08 01:13:35 419

原创 leetcode:Anagrams

public class Solution { public static ArrayList anagrams(String[] strs) { int m=strs.length; int i,j,n; int[][] map=new int[m][26]; int[] Bhash=new int[m]; Arr

2014-05-07 19:05:41 418

原创 leetcode: Rotate Image

n X n的考虑到:第一象限的点全

2014-05-06 19:16:31 510

原创 leetcode: Permutations/Permutations II

按照字典序依次写,求一个序列的下一字典序序列:A[0] A[0] A[0] A[0]

2014-05-06 12:23:18 423

原创 leetcode:Jump Game II

public class Solution { public int jump(int[] A) { int n=A.length; int[] maxstep=new int[n]; int i,j,max,tmp;; if(n<2) return 0; maxstep[0]=0; //0 for(i

2014-05-05 23:16:16 410

原创 leetcode:Wildcard Matching

public class Solution {    public static boolean isMatch(String s, String p) { if(s.equals(""))    return p.equals("")?true:false;   if(p.equals(""))    return false;   //System.out.prin

2014-05-05 11:15:33 556

原创 wireshark抓包提示There are no interfaces on which a capture can be done

windows下运行wireshark抓包,提示There are no interfaces on which a capture can be done,是因为权限不够,选择“以管理员身份”

2014-05-05 11:00:31 1128

原创 leetcode:Multiply Strings

大整数chengfapublic class Solution {    public static String multiply(String num1, String num2) {       String rst="0";       String adder2="0";       int len1=num1.length();       int len2=n

2014-05-04 16:10:30 409

原创 leetcode: Trapping Rain Water

好久没有做leetcode了,因为最近心情不好。这道题还是左右指针,public class Solution {    public int trap(int[] A) {      int sum=0;        int begin=0;        int i,l,r,min;        int n=A.length;        if(n==0)

2014-05-04 14:53:52 426

原创 leetcode: First Missing Positive

public class Solution {    public int firstMissingPositive(int[] A) {        int i,j;        int n=A.length;        int e1,e2,tmp;                for(i=0;i        {            while(i

2014-04-05 15:17:11 400

原创 Combination Sum II

不是two sum,所以还是深搜每个数的搜索深度是它重复的次数,例如有两个1,搜索就是0,1,2三次其他和combination sum相同public class Solution {    public ArrayList> combinationSum2(int[] num, int target) {      Arrays.sort(num);return DFS

2014-03-27 22:12:52 389

原创 leetcode: Combination Sum

写得比较复杂,深搜吧 也没有什么很好地办法。public class Solution {    public ArrayList> combinationSum(int[] candidates, int target) {Arrays.sort(candidates);return DFS(candidates,target,0,candidates.length);   

2014-03-22 21:55:27 430

原创 leetcode: Count and Say

这个技术主要用在文件压缩吧,比如111112,有5个1和1个2,于是变为5112.理解题意比较重要。递归实现。public class Solution {    public String countAndSay(int n) {         String rst="";        if(n==1)        {            rst+="1";

2014-03-19 20:29:03 422

原创 leetcode:Sudoku Solver

算法打死没想出来,看了看别人的代码,才发现是暴力枚举(递归)首先找一个没有填的空,然后填入1-9,判断填入之后的数是否有冲突,没有就继续递归。public class Solution {    public void solveSudoku(char[][] board) {msolveSudoku(board);    }public boolean msolveS

2014-03-18 21:45:08 388

原创 leetcode: Valid Sudoku

根据坐标找到对应的行,列,块即可。设置三个标志矩阵。public class Solution {    public boolean isValidSudoku(char[][] board) {        int[][] rowflag=new int[9][9];        int[][] colflag=new int[9][9];        int[]

2014-03-18 20:14:48 384

原创 leetcode: Search Insert Position

也是二分法做的public class Solution {    public int searchInsert(int[] A, int target) {        return msearch(A,target,0,A.length-1);    }        public static int msearch(int[] A, int target, in

2014-03-18 19:57:01 450

原创 leetcode:Search for a Range

二分法:public class Solution {    public int[] searchRange(int[] A, int target) {        return msearch(A,target,0,A.length-1);    }    public static int[] msearch(int[] A, int target, int begi

2014-03-17 21:57:13 421

原创 leetcode: Search in Rotated Sorted Array

二分法递归:有两种情况:(1)A[mid](2)A[mid]>=A[end]如3456789012根据target和mid,begin,end的大小关系,去二分原数组public class Solution {    public static int search(int[] A, int target) {        return msearch(

2014-03-17 21:00:53 365

原创 leetcode: Longest Valid Parentheses

动态规划:F[i]表示末尾到第i个括号的最大匹配括号数。last=i-1-F[i-1],表示上一个不匹配的地方,要么是这样:****(*****)就匹配了,那么F[i]=f[last-1]+2+F[i-1]要么就是不匹配,F[i]=0public class Solution {    public int longestValidParentheses(String

2014-03-17 20:29:39 357

原创 leetcode: Next Permutation

理解9587643这个串的下一个是什么就行。首先,从后往前找到num[i]然后从后往前找到第一个比5大的数,是6.然后5和6换位置,得到9687543,然后把6后面的数颠倒,9634578即可。public class Solution {    public void nextPermutation(int[] num) {        int i,

2014-03-15 00:45:43 431

原创 leetcode:Substring with Concatenation of All Words

这个题目的意思理解了很久,而且开始的时候还是理解错了。比如给一个串“absdaaaasd”,再给一些列小串"aa","aa",“sd”.首先这些小串可以自由“串联”,要求是:1.小串长度相同;2必须包含所有小串所有的可能有:“aaaasd”;"aasdaa";“sdaaaa”;注意,相同的小串并不是排除,而是一样的加进去。设大串长为m,小串个数为n,小串长为eachlen;最简

2014-03-14 21:19:46 479

原创 leetcode: Divide Two Integers

只能说这个题目很贱。主要是-2^32变成绝对值之后会超出int的界,所以用long 来存dd=Math.abs((long)dividend);dr=Math.abs((long)divisor);解题想法原来是:divide(dividend, divisor)=divide(dividend/2, divisor)+divide(dividend/2, divisor)用二

2014-03-12 22:12:19 444

原创 leetcode: Implement strStr()

KMP算法,参照资料写的。先算next数组,再利用next数组来计算。next[i]表示包含当前元素的前next[i]个字符与needle的前i个字符相同(但是不重合。)复杂度是O(m+n)public class Solution {    public String strStr(String haystack, String needle) {        int n=

2014-03-12 21:17:42 390

转载 poj里java的一些常用的语法(转自博客http://www.blogjava.net/DreamAngel/archive/2009/10/18/298731.html)

这里指的java速成,只限于java语法,包括输入输出,运算处理,字符串和高精度的处理,进制之间的转换等,能解决OJ上的一些高精度题目。1. 输入:格式为:Scanner cin = new Scanner (new BufferedInputStream(System.in));例程:import java.io.*;import java.math.*;import j

2014-03-12 20:37:24 875

原创 leetcode: Remove Element

设置一个末尾指针,如果有遇到相同元素,那么就把相同元素和末尾指针的数对换。注意因为换过来的数又要重新比较,所以要i--。public class Solution {    public int removeElement(int[] A, int elem) {        int n=A.length;        if(n==0)            retur

2014-03-10 21:25:08 406

原创 leetcode:Remove Duplicates from Sorted Array

不太明白这道题有什么玄机。。反正一次就通过了。public class Solution {    public int removeDuplicates(int[] A) {        int n=A.length;        int i=1,p=1;        if(n==0 || n==1)            return n;       

2014-03-10 21:19:13 373

原创 leetcode:Reverse Nodes in k-Group

递归,每次取k个元素。然后对这k个元素处理,返回{k个元素}+reverseKGroup(tail,k)比如1-2-3-4-5-6,k=4,那就先处理1-2-3-4,tail=5,5-6后续再处理。处理过程是1(head,p1)-2(p2)-3-4,p1是当前最左边的元素,head是原来的头,p2是原来头下面的元素。然后把p2移到p1左边:2(p1)-1(head)-3(p2)-4

2014-03-10 16:39:53 439

jos2010_lab1_实习报告

lab1的实习报告,写的还比较详细吧,主要是配合源代码使用的

2011-04-14

JOS2010-LAB1-源代码-qemu

JOS LAB1 的源代码,这是最新的2010版的源代码,不是用以前的bochs,而是用QEMU模拟器。

2011-04-14

空空如也

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

TA关注的人

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