摘要: 在很多的笔试和面试中,喜欢考察Top K.下面从自身的经验给出三种实现方式及实用范围。合并法 这种方法适用于几个数组有序的情况,来求Top k。时间复杂度为O(k*m)。(m:为数组的个数).具体实现如下:/*** 已知几个递减有序的m个数组,求这几个数据前k大的数*适合采用Merge的方法,时间... 阅读全文
posted @ 2014-11-09 20:03 big sun 阅读(8160) 评论(0) 推荐(0) 编辑
摘要: 单链表是否有环的问题经常在面试中遇到,一般面试中会要求空间为O(1);再者求若有环,则求环产生时的起始位置。下面采用java实现。//单链表class ListNode{ int val; ListNode next; ListNode(int x){ val... 阅读全文
posted @ 2014-11-05 22:57 big sun 阅读(2594) 评论(0) 推荐(0) 编辑
摘要: leetcode 原题 :(即判断二叉树是否为二叉查找树)Given a binary tree, determine if it is a valid binary search tree (BST).Assume a BST is defined as follows:The left subt... 阅读全文
posted @ 2014-11-05 22:06 big sun 阅读(459) 评论(0) 推荐(0) 编辑
摘要: import java.util.Arrays;/***字典序全排列*字符串的全排列*比如单词"too" 它的全排列是"oot","oto","too"*1,从右端开始扫描,若出现前一个比后一个小,记录前一个的元素下表index*2,再找出index以后比该元素大的中的最小值的下标,(实现见 下面的... 阅读全文
posted @ 2014-11-01 20:58 big sun 阅读(8845) 评论(0) 推荐(0) 编辑
摘要: 最近在leetcode上做题的时,看到了一道有关LRU Cache的题目,正好我当初面试阿里巴巴的时候问到的。主要采用linkedHashMap来实现。package edu.test.algorithm;import java.util.LinkedHashMap;public class LRU... 阅读全文
posted @ 2014-10-24 14:34 big sun 阅读(1692) 评论(0) 推荐(0) 编辑