- 博客(5)
- 资源 (14)
- 收藏
- 关注
原创 算法学习【8】二叉树相关算法
二叉树相关算法是笔试面试常考内容,需重点掌握。 二叉树节点定义: public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }
2016-04-26 12:28:07 666
原创 算法学习【7】常见排序算法
部分内容参考:http://blog.csdn.net/whuslei/article/details/6442755 常见排序算法的时间复杂度: 注:图片来源http://blog.chinaunix.net/uid-21457204-id-3060260.html 在平均时间复杂度为O(nlogn)的排序算法中,归并排序
2016-04-21 16:09:10 446
原创 算法学习【6】寻找最小的k个,
1、输入n个整数,输出其中最小的k个。 思路1:先快速排序,然后取前k个数。时间复杂度:O(n * log n)+O(k)=O(n * log n)。 思路2:定义一个长度为k的数组result,将前k个整数放入result;采用选择或交换排序找到result数组的最大值max;依次遍历后n-k个整数,若其>max,说明其不是最小k个数之一并跳过,若其<max,则使ma
2016-04-07 19:11:24 513
原创 算法学习【5】字符串全排列
在面试中经常遇到字符串全排列问题,现整理常见情况如下: 1、输入字符串,输出该串中所有字符能够排列出来的字符串,例输入”abc“,输出”abc、acb、bac、bca、cab 、cba“ 不考虑字符串重复,该问题是求所有字符的排列,有A(n, n) = n! 种情况,其中n是字符串长度。 递归思路:先确定字符串(n)第一位上的字符str[0],字符串(n-1)为字符串
2016-04-06 13:36:20 445
原创 算法学习【4】
1、判断一个二进制数中有多少个1 思路1:时间复杂度为O(二进制数长度)。判断最右一位是否为1并赋值"num+=v&0x0x",数右移一位"v>>1",循环直到数为0。 思路2:时间复杂度为O(二进制数中1个数) 将二进制数中最右的1置0,v = v&(v-1), num++,循环直到数为0 int count(in
2016-04-01 15:16:04 403
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人