算法
文章平均质量分 74
tangdong3415
这个作者很懒,什么都没留下…
展开
-
java 常用排序
java 常用排序原创 2016-12-21 11:32:57 · 209 阅读 · 0 评论 -
面试算法学习-7-跳台阶问题
题目描述一个台阶总共有n 级,如果一次可以跳1 级,也可以跳2 级。求总共有多少总跳法,并分析算法的时间复杂度。分析与解法解法一首先考虑最简单的情况。如果只有1级台阶,那显然只有一种跳法。如果有2级台阶,那就有两种跳的方法了:一种是分两次跳,每次跳1级;另外一种就是一次跳2级。现在我们再来讨论一般情况。我们把n级台阶时的跳法看成是n的函数,记为f(n)。当n>2时,原创 2017-01-10 16:46:16 · 362 阅读 · 0 评论 -
斐波那契数列【黄金分割数列】-兔子问题
/************************************************************************************************ 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,* 小兔子长到第三后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? * 1.程序分析: 兔子(对)的规原创 2017-01-10 16:17:14 · 2387 阅读 · 0 评论 -
面试算法学习-6-寻找和为定值的两个数
题目描述输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(N)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。分析与解法咱们试着一步一步解决这个问题(注意阐述中数列有序无序的区别):直接穷举,从数组中任意选取两个数,判定它们的和是否为原创 2017-01-10 11:09:06 · 309 阅读 · 0 评论 -
面试算法学习-5-寻找最小K个值
题目描述输入n个整数,输出其中最小的k个。分析与解法解法一要求一个序列中最小的k个数,按照惯有的思维方式,则是先对这个序列从小到大排序,然后输出前面的最小的k个数。至于选取什么的排序方法,我想你可能会第一时间想到快速排序(我们知道,快速排序平均所费时间为n*logn),然后再遍历序列中前k个元素输出即可。因此,总的时间复杂度:O(n * log n)+O(k)=O(n * lo原创 2017-01-10 11:07:09 · 308 阅读 · 0 评论 -
JVM虚拟机类加载机制-过程
虚拟机类加载机制1. 类的生命周期: 加载、验证、准备、解析、初始化、使用、卸载七个阶段,其中验证、准备、解析三个阶段统称为连接。其中,解析的阶段的时机并不一定。2. Java类加载的时机: Java类加载的时机Java虚拟机规范并没有强调,但是对于初始化阶段,虚拟机规范则严格限定了有且只有5种情况必须立即对类进行初始化:原创 2017-01-13 16:40:46 · 426 阅读 · 0 评论 -
java 经典算法
java 经典算法转载 2016-12-20 20:04:40 · 463 阅读 · 0 评论 -
面试算法学习-4-字符串全排列
题目描述输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c 所能排列出来的所有字符串abc、acb、bac、bca、cab 和 cba。分析与解法解法一、递归实现从集合中依次选出每一个元素,作为排列的第一个元素,然后对剩余的元素进行全排列,如此递归处理,从而得到所有元素的全排列。以对字符串abc进行全排列为例,我们可以这么做:以ab原创 2017-01-06 17:02:16 · 333 阅读 · 0 评论 -
面试算法学习-3-回文判断
题目描述回文,英文palindrome,指一个顺着读和反过来读都一样的字符串,比如madam、我爱我,这样的短句在智力性、趣味性和艺术性上都颇有特色,中国历史上还有很多有趣的回文诗。那么,我们的第一个问题就是:判断一个字串是否是回文?分析与解法回文判断是一类典型的问题,尤其是与字符串结合后呈现出多姿多彩,在实际中使用也比较广泛,而且也是面试题中的常客,所以本节就结合几个典型的例子来原创 2017-01-06 16:39:03 · 314 阅读 · 0 评论 -
面试算法学习-2-字符串包含
题目描述给定两个分别由字母组成的字符串A和字符串B,字符串B的长度比字符串A短。请问,如何最快地判断字符串B中所有字母是否都在字符串A里?为了简单起见,我们规定输入的字符串只包含大写英文字母,请实现函数bool StringContains(string &A, string &B)比如,如果是下面两个字符串:String 1:ABCDString 2:BAD答案是true原创 2017-01-06 16:21:08 · 418 阅读 · 0 评论 -
面试算法学习-1-字符串旋转
题目描述给定一个字符串,要求把字符串前面的若干个字符移动到字符串的尾部,如把字符串“abcdef”前面的2个字符'a'和'b'移动到字符串的尾部,使得原字符串变成字符串“cdefab”。请写一个函数完成此功能,要求对长度为n的字符串操作的时间复杂度为 O(n),空间复杂度为 O(1)。分析与解法解法一:暴力移位法初看此题,可能最先想到的方法是按照题目所要求的,把需要移动的字符一个一原创 2017-01-06 15:50:27 · 228 阅读 · 0 评论 -
数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
0、前言 这一部分的内容原本是打算在之后的字符串或者数组专题里面写的,但看着目前火热进行的各家互联网公司笔试面试中,出现了其中的一两个内容,就随即将这些经典问题整理整理,单写一篇发上来了。这里争取覆盖面广一些,列举了7个最经典的问题,也会是之后大家笔试面试常见到的问题,而每个问题下都列举了几种思路,掌握这些经典问题的解题思路和算法相信对同类型问题的解答都能有帮助。转载 2017-01-04 10:43:16 · 544 阅读 · 0 评论 -
12种排序算法:原理、图解、动画视频演示、代码以及笔试面试题目中的应用
0、前言 从这一部分开始直接切入我们计算机互联网笔试面试中的重头戏算法了,初始的想法是找一条主线,比如数据结构或者解题思路方法,将博主见过做过整理过的算法题逐个分析一遍(博主当年自己学算法就是用这种比较笨的刷题学的,囧),不过又想了想,算法这东西,博主自己学的过程中一直深感,基础还是非常重要的,很多难题是基础类数据结构和题目的思想综合发散而来。比如说作为最基本的排序算法就种类很多,转载 2017-01-04 10:33:01 · 10354 阅读 · 1 评论 -
JAVA版本-剑指Offer
1、面试题3:二维数组中的查找题目大致为: 一个二维数组,每一行按照从左到右递增,每一列按照从上到下递增,查找数组中是否存在某个数。如数组:1 2 8 92 4 9 124 7 10 136 8 11 15思路: 这道题有其特殊性,从右上角或者左下角开始查找的方向是确定的。这句话是说比如是查找原创 2016-12-23 11:07:27 · 2507 阅读 · 0 评论 -
动态规划-硬币问题
硬币选择问题-动态规划2013-07-11 03:17 5610人阅读 评论(0) 收藏 举报 分类:算法和数据结构学习(79) 版权声明:本文为博主原创文章,未经博主允许不得转载。最少硬币问题假设有3种不同的硬币,币值分别是CoinValue[] = {1, 2, 5},每一种硬币的数量是有限的,分别是CoinNum[] = {原创 2017-01-10 16:57:04 · 572 阅读 · 0 评论