算法
superKKOne
从事手机平台的软件开发,擅长java,android,c,c++
展开
-
常用排序方法
排序方法 时间复杂度 平均情况 最坏情况 最好情况 空间复杂度 稳定性 复杂性 Bubble O(n*n) O(n*n) O(n) O(1) 稳定 简单 Select O(n原创 2014-08-03 18:43:51 · 394 阅读 · 0 评论 -
深度优先和广度优先
深度优先:类似二叉树的先根遍历,需要借助栈和一个数组记录是否访问过来实现。 实现思想: 1, 访问一个未被访问的相邻节点,将该节点压栈,并标记已访问,寻找该节点相邻的未被访问的节点 2, 如果找到,将该节点压栈,并标记已访问;如果没有找到则弹出栈顶元素,重复第一步。如果栈为空结束遍历 广度优先:需要借助队列和一个数组记录是否访问过来实现。 实现思想: 1, 访问一个未被访问的相邻原创 2014-08-04 12:09:22 · 583 阅读 · 0 评论 -
算法面试题:求最小的k个束/求数组中最小的k个数
利用快速排序的思想,找到中枢值为k,k之前的都比它小,k之后的都比她大原创 2014-08-11 23:53:15 · 362 阅读 · 0 评论 -
求字符串最大的重复字串
1,定义一个后缀数组 2,对后缀shuj原创 2014-08-26 16:36:18 · 525 阅读 · 0 评论 -
leetcode - Single Number
Given an array of integers, every element appears twice except for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. Could you implement it without using ext原创 2014-08-31 10:39:19 · 426 阅读 · 0 评论 -
Validate Binary Search Tree
class TreeNode{ int value; TreeNode left; TreeNode right; TreeNode(int value){ this.value = value; } } boolean isSearchTree(TreeNode root, int min, int max){ if(root==null) return true; if原创 2014-08-31 00:34:07 · 312 阅读 · 0 评论 -
Merge Two Sorted Lists
Node merge(Node head1, Node head2) { if(head1==null) return head2; if(head2==null) return head1; Node p1 = head1; Node p2 = head2; Node ret = null; if(p1.data < p2.data){ ret = p1; ret原创 2014-08-30 17:47:03 · 319 阅读 · 0 评论 -
链表常见面试题
1,给定一个单链表,检查是否有环原创 2014-08-23 16:13:20 · 463 阅读 · 0 评论