- 浏览: 201501 次
- 性别:
- 来自: 杭州
最新评论
-
hthhit:
...
回溯算法之N皇后问题(java实现) -
huntfor:
249326109 写道这个算法的复杂度有考虑过么O(n^2) ...
[leetcode]Longest Valid Parentheses -
249326109:
这个算法的复杂度有考虑过么
[leetcode]Longest Valid Parentheses -
huntfor:
249326109 写道又搜到你的了 你怎么搜的,为啥我搜不到 ...
[leetcode]Sort Colors -
249326109:
又搜到你的了
[leetcode]Sort Colors
文章列表
新博文地址:[leetcode]Palindrome Number
http://oj.leetcode.com/problems/palindrome-number/
Determine whether an integer is a palindrome. Do this without extra space. Some hints: Could negative integers be palindromes? (ie, -1) If you are thinking of converting the integer to string, note the restric ...
新博文地址:[leetcode]Letter Combinations of a Phone Number
新博文中采用了DFS算法,代码简洁易懂
http://oj.leetcode.com/problems/letter-combinations-of-a-phone-number/
Given a digit string, return all possible letter combinations that the number could represent. A mapping of digit to letters (just like on the telephon ...
新博文地址:[leetcode]Remove Nth Node From End of List
http://oj.leetcode.com/problems/remove-nth-node-from-end-of-list/
Given a linked list, remove the nth node from the end of list and return its head. For example, Given linked list: 1->2->3->4->5, and n = 2. After removing the seco ...
新博文地址: [leetcode]Longest Substring Without Repeating Characters
Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for "abcabcbb" is "abc", which the length is 3. For "bbbbb&q ...
这篇博文的代码有bug,新博文地址[leetcode]Reverse Integer
http://oj.leetcode.com/problems/reverse-integer/
Reverse Integer
Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 click to show spoilers. Have you thought about this? Here are some good questions to ask be ...
LeetCode :Remove Duplicates from Sorted Array
题目
Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length. Do not allocate extra space for another array, you must do this in place with constant memory. For example, Given input array A ...
leetCode难度与考察度参考表
- 博客分类:
- leetcode
https://docs.google.com/spreadsheet/pub?key=0Aqt--%20wSNYfuxdGxQWVFsOGdVVWxQRlNUVXZTdEpOeEE&output=html
ID
Question
Diff
逗逼室友说了:
回溯是思想,深搜是本质,递归是实现。
在理!
虽不是第一次接触递归,但是确实实实在在的第一次接触回溯。是琢磨了蛮长时间才编完并测试通过的代码,继承本菜鸟一贯简单的作风,希望能给不太熟悉回溯思想的各位看官一点启发。但是大家在学习回溯时,还是需要明白递归的思想的。不废话
八皇后问题是回溯思想的经典题目,就好像由汉诺塔引入递归一样。具体的要求就不再啰嗦了,google一下一大片(这里给出leetcode中的n皇后的题目大意http://oj.leetcode.com/problems/n-queens/)题目大意:8*8棋盘,8个皇后,怎么放才能保证这几个皇后 ...
文章转自:http://www.blogjava.net/zh-weir/archive/2011/03/26/347063.html
Java反射机制是Java语言被视为准动态语言的关键性质。Java反射机制的核心就是允许在运行时通过Java Reflection APIs来取得已知名字的class类的相关信息,动态地生成此类,并调用其方法或修改其域(甚至是本身声明为private的域或方法)。
也许你使用Java已经很长时间了,可是几乎不会用到Java反射机制。你会嗤之以鼻地告诉我,Java反射机制没啥用。
基础好渣:
笔试题
父类、子类中各有一个构造函数、静态语句块、非静态语句块,这两个语句块的调用次序是什么样的
class A {
private int a = 0;
public A(){
System.out.println("A's constructor");
}
{System.out.println("A no ...
堆(数据结构)的定义:
wiki百科中对堆的定义是
wikipedia 写道
堆(heap)亦被称为优先队列(priority queue),通常是一个可以被看做一棵树的数组对象。在队列中,调度程序反复提取队列中的第一个作业并运行,因而实际情况中某些时间较短的任务将等待很长时间才能结束,或者某些不短小,但具有重要性的作业,同样应当具有优先权。堆即为解决此类问题设计的一种数据结构。
既然堆是一棵树,那么其特点也应该是递归的了。继续wikipedia:
写道
堆的实现通过构造二叉堆(binary heap),实为二叉树(疑问:堆不应该只有二叉堆吧?)的一种,二叉堆是完全二叉树, ...
排序算法(2)之归并排序——java实现
- 博客分类:
- 算法
本文要讲的归并排序是继快速排序之后的又一常用排序算法,相似的是归并排序也是一种分治算法,因此,与快排一样,对于规模较大的问题,非常适用。
与快排相比,归并排序是稳定的,最重要的是其优点在于,其最差时间复杂度也是O(NlogN)。
归并排序是将两个(两个以上按两两处理)有序表合并成一个新的有序表。这里要强调下,待归并的两个数列必须是有序的。具体原因见算法。
算法思想:
1.首先将原数列,分解成左右两部分
2.分别对左右两部分,进行分解处理
3.再讲子部分合并成为一个有序数列
代码框架如下:
static void merge(int[] a,int begin ...
排序算法(1)之快速排序——java实现
- 博客分类:
- 算法
题外话:
一般情况下,快速排序被认为是最快的排序算法(人如其名啊),因此可以说是最常用的排序算法,并受大多数公司的青睐,是一定要熟练掌握的。
简介:
快速排序是不稳定的,而且是中比较个性的排序
算法——初始顺序越乱,排序效果越好,一般情况下,我们认为其时间复杂度为O(NlogN),当排序队列已经是顺序队列,时间复杂度达到最差O(n*n),具体是实现是用分治算法,因此涉及到栈,再因此,其空间复杂度略大,达到同样的O(NlogN),在这个效率为先的环境下,以牺牲些许空间换取更短的时间还是非常值得的。
算法思想:
快排采取了分治策略,也是分治算法的一个经典习题,因此其算法 ...
java序列化原理(转载整理)
- 博客分类:
- java
前几天室友问我“序列化是做什么的,为什么要序列化,内存中不就可以直接把对象作为参数传来传去嘛”
序列化问题虽然基础,但是还是做一个简单的小结吧,上面三个问题很有代表性,一并回答。
序列化是做什么的?
序列化(Serialization)是一种将对象转换为一连串字节描述的过程,可以使你将一个对象写入一个Byte流中。一旦写入流中,就成IO问题了,你可以用于传输,也可以将其持久化,存数据库或者文件等等。
反序列化(deserialization)顾名思义,根据这些字节重建对象。
为什么要序列化,而不能像在内存中那样把对象作为参数直接传输?
这里首先要确定一件事 ...
合理的模式可以提高代码复用性,可维护性已经灵活性,下面介绍一下设计模式中的工厂模式,简单好用,也是上篇博文——面向接口编程 的更高一层的抽象。
面向接口将规范和实现分离,配合多态,使的代码的复用率提高,减少了代码量,比如说,我们不必为每一个对象写doEverything方法了,但是,当50个类中都需要new出person的话,我们还要在50个类中分别new出50个person,这似乎是必须的,但是当我们突然发现不应该new person,而应该new fox的时候,我们就需要到50个类中分别修改代码(这不是开闭原则..),不开心啊。。。。如果我们可以在将new 对象的动作放在一个统 ...