导航:首页 > 源码编译 > 安卓面试算法题

安卓面试算法题

发布时间:2025-03-22 13:31:37

A. 面试会出哪些经典算法

如下:

1、排序算法∶快速排序、归并排序、计数排序

2、搜索算法∶回溯、递归、剪枝技巧

3、图论∶最短路、最小生成树、网络流建模

4、动态规划:背包问题、最长子序列、计数问题

5、基础技巧:分治、倍增、二分、贪心

6、数组与链表:单/双向链表、跳舞链

7、栈与队列

8、树与图:最近公共祖先、并查集

9、哈希表

10、堆:大/小根堆、可并堆

11、字符串∶字典树、后缀树

算法简介:

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。

如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。一个状态到另一个状态的转移不一定是确定的。随机化算法在内的一些算法,包含了一些随机输入。

形式化算法的概念部分源自尝试解决希尔伯特提出的判定问题,并在其后尝试定义有效计算性或者有效方法中成形。

这些尝试包括库尔特·哥德尔、Jacques Herbrand和斯蒂芬·科尔·克莱尼分别于1930年、1934年和1935年提出的递归函数,阿隆佐·邱奇于1936年提出的λ演算,1936年Emil Leon Post的Formulation 1和艾伦·图灵1937年提出的图灵机。即使在当前,依然常有直觉想法难以定义为形式化算法的情况。

B. 算法-面试题系列 - 求数组左部分最大值减去右部分最大值的绝对值

给定一个数组arr长度为N,你可以把任意长度大于0且小于N的前缀作为左部分,剩下的作为右部分。

但是每种划分下都有左部分的最大值和右部分的最大值

请返回最大的, 左部分最大值减去右部分最大值的绝对值

算法流程

我们要求左边最大减去右边最大,max肯定是在左边数组和右边数组中的最后参与决策的最大数。

假设12在左边数组中,右边数组剩下[5,6,7]

因为把max放入了左边的数组,所以, 我们需要右边数组的最大值尽可能的小 ,数组个数越少,他的最大值就是尽可能的小,比如剩下[5,6,7]的情况,我们可以看到我们区arr[N-1]这个数作为右侧数组,是最满足 左部分最大值减去右部分最大值的绝对值 条件的。

同理 把max划分到右侧数组,左侧数组a[0]划分是最符合条件的。

阅读全文

与安卓面试算法题相关的资料

热点内容
雅黑pdf 浏览:454
python使用领域 浏览:877
买兰博基尼用什么app 浏览:135
android关闭后台运行 浏览:503
python输出路径为超链接 浏览:529
caxa为什么没有加密锁 浏览:790
服务器怎么设置才能用IP访问 浏览:663
邮件附件加密后打开能显示吗 浏览:723
荣耀x10拍照算法 浏览:569
androidgradle配置签名 浏览:96
文件夹左边的空心三角符号是什么 浏览:285
app英语音频试卷扫码怎么听 浏览:613
字符串编译预处理 浏览:704
苹果手机怎么会显示多个App 浏览:241
不去互联网程序员 浏览:553
电脑qq邮箱解压的图片保存在哪里 浏览:548
嵌入命令行 浏览:94
档案为什么被加密 浏览:487
十天学会单片机13 浏览:876
荣耀怎么设置让app一直运行 浏览:994