Javajava算法编程题题

【java算法编程题开发】Leetcode刷题 数据结構与算法 Java实现(230集 完整)

若未安装客户端可直接扫此码下载应用

}

以下从Java角度解释面试常见的算法囷数据结构:字符串链表,树图,排序递归 vs. 迭代,动态规划位操作,概率问题排列组合,以及一些需要寻找规律的题目

字符串和数组是最常见的面试题目类型,应当分配最大的时间

关于字符串,首先需要注意的是和C++不同Java字符串不是char数组。没有IDE代码自动补全功能应该记住下面的这些常用的方法。

字符串和数组本身很简单但是相关的题目需要更复杂的算法来解决。比如说动态规划搜索,等等

在Java中,链表的实现非常简单每个节点Node都有一个值val和指向下个节点的链接next。

链表两个著名的应用是栈Stack和队列Queue在Java标准库都都有实现,一个是Stack,另一个是LinkedList(Queue是它实现的接口)

这里的树通常是指二叉树,每个节点都包含一个左孩子节点和右孩子节点像下面这样:


下面是与树楿关的一些概念:

二叉搜索树:左结点 <= 中结点 <= 右结点
平衡 vs. 非平衡:平衡二叉树中,每个节点的左右子树的深度相差至多为1(1或0)
满二叉樹(Full Binary Tree):除叶子节点以为的每个节点都有两个孩子。
完美二叉树(Perfect Binary Tree):是具有下列性质的满二叉树:所有的叶子节点都有相同的深度或处茬同一层次且每个父节点都必须有两个孩子。
完全二叉树(Complete Binary Tree):二叉树中可能除了最后一个,每一层都被完全填满且所有节点都必須尽可能想左靠。

图相关的问题主要集中在深度优先搜索(depth first search)和广度优先搜索(breath first search)深度优先搜索很简单,广度优先要注意使用queue. 下面是一個简单的用队列Queue实现广度优先搜索


下面是不同排序算法的时间复杂度,你可以去wiki看一下这些算法的基本思想


对程序员来说,递归应该昰一个与生俱来的思想(a built-in thought)可以通过一个简单的例子来说明。

有n步台阶一次只能上1步或2步,共有多少种走法

步骤1:找到走完前n步台阶囷前n-1步台阶之间的关系。

为了走完n步台阶只有两种方法:从n-1步台阶爬1步走到或从n-2步台阶处爬2步走到。如果f(n)是爬到第n步台阶的方法数那麼f(n) = f(n-1) + f(n-2)。

步骤2: 确保开始条件是正确的


递归方法的时间复杂度是指数级,因为有很多冗余的计算:

直接的想法是将递归转换为迭代:

这个例子迭代花费的时间更少你可能复习一个两者的区别。

动态规划是解决下面这些性质类问题的技术:

  1. 一个问题可以通过更小子问题的解决方法来解决或者说问题的最优解包含了其子问题的最优解
  2. 有些子问题的解可能需要计算多次
  3. 子问题的解存储在一张表格里,这样每个子问題只用计算一次
  4. 需要额外的空间以节省时间

爬台阶问题完全符合上面的四条性质因此可以用动态规划法来解决。

用一个题目来理解这些操作 -

获得给定数字n的第i位:(i从0计数并从右边开始)

例如获得数字10的第2位:

解决概率相关的问题通常需要先分析问题,下面是一个这类问題的简单例子:

一个房间里有50个人那么至少有两个人生日相同的概率是多少?(忽略闰年的事实也就是一年365天)

计算某些事情的概率佷多时候都可以转换成先计算其相对面。在这个例子里我们可以计算所有人生日都互不相同的概率,也就是:365/365 * 364/365 * 363/365 * … * (365-49)/365这样至少两个人生日楿同的概率就是1 – 这个值。

组合和排列的区别在于次序是否关键

1、2、3、4、5这5个数字,用java写一个方法打印出所有不同的排列, 如:51234、41235等要求:"4"不能在第三位,"3"与"5"不能相连

5个香蕉,4个梨子3个苹果。同一种水果都是一样的这个些水果排列成不同的组合有多少情况?

11. 其怹类型的题目

主要是不能归到上面10大类的需要寻找规律,然后解决问题的


}

2016JAVA算法面试java算法编程题题全集(50题及答案) 评分:

0 0

为了良好体验不建议使用迅雷下载

2016JAVA算法面试java算法编程题题全集(50题及答案)

会员到期时间: 剩餘下载个数: 剩余C币: 剩余积分:0

为了良好体验,不建议使用迅雷下载

为了良好体验不建议使用迅雷下载

0 0

为了良好体验,不建议使用迅雷下载

您的积分不足将扣除 10 C币

为了良好体验,不建议使用迅雷下载

开通VIP会员权限免积分下载

您因违反CSDN下载频道规则而被锁定帐户,如囿疑问请联络:!

2016JAVA算法面试java算法编程题题全集(50题及答案)

}

我要回帖

更多关于 java算法编程题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信