天天看点

算法到底应该怎么学?看完以下几个案例你定将会有所感悟!!!前言柠檬水找零三角形的最大周长要素分类结论

前言

算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。下面是几个算法案例解析…

2021全新完整版Java面试题地址:JAVA后端面试题整合

柠檬水找零

在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。必须给每个顾客正确找零注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。

算法到底应该怎么学?看完以下几个案例你定将会有所感悟!!!前言柠檬水找零三角形的最大周长要素分类结论
算法到底应该怎么学?看完以下几个案例你定将会有所感悟!!!前言柠檬水找零三角形的最大周长要素分类结论

三角形的最大周长

给定由一些正数(代表长度)组成的数组 A ,返回由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回 0 。

贪心:

先小到大排序,假设最长边是最后下标,另外两条边是倒数第二和第三下标,则此时三角形周长最大

n < (n-1) + (n-2),如果不成立,意味着该数组中不可能有另外两个值之和大于n,此时将n左移,重新计算

算法到底应该怎么学?看完以下几个案例你定将会有所感悟!!!前言柠檬水找零三角形的最大周长要素分类结论

排列硬币

总共有 n 枚硬币,将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。

给定一个数字 n,找出可形成完整阶梯行的总行数。

n 是一个非负整数,并且在32位有符号整型的范围内

解法一:迭代

从第一行开始排列,排完一列、计算剩余硬币数,排第二列,直至剩余硬币数小于或等于行数

算法到底应该怎么学?看完以下几个案例你定将会有所感悟!!!前言柠檬水找零三角形的最大周长要素分类结论

解法二:二分查找

假设能排 n 行,计算 n 行需要多少硬币数,如果大于 n,则排 n/2行,再计算硬币数和 n 的大小关系

算法到底应该怎么学?看完以下几个案例你定将会有所感悟!!!前言柠檬水找零三角形的最大周长要素分类结论
算法到底应该怎么学?看完以下几个案例你定将会有所感悟!!!前言柠檬水找零三角形的最大周长要素分类结论

解法三:牛顿迭代

使用牛顿迭代求平方根,(x + n/x)/2

假设能排 x 行 则 1 + 2 + 3 + …+ x = n,即 x(x+1)/2 = n 推导出 x = 2n - x

算法到底应该怎么学?看完以下几个案例你定将会有所感悟!!!前言柠檬水找零三角形的最大周长要素分类结论

要素

一、数据对象的运算和操作:计算机可以执行的基本操作是以指令的形式描述的。一个计算机系统能执行的所有指令的集合,成为该计算机系统的指令系统。一个计算机的基本运算和操作有如下四类:

1.算术运算:加减乘除等运算。

2.逻辑运算:或、且、非等运算。

3.关系运算:大于、小于、等于、不等于等运算。

4.数据传输:输入、输出、赋值等运算 。

**二、算法的控制结构:**一个算法的功能结构不仅取决于所选用的操作,而且还与各操作之间的执行顺序有关。

分类

算法可大致分为基本算法、数据结构的算法、数论与代数算法、计算几何的算法、图论的算法、动态规划以及数值分析、加密算法、排序算法、检索算法、随机化算法、并行算法,厄米变形模型,随机森林算法。

算法可以宏泛的分为三类:

一、有限的,确定性算法 这类算法在有限的一段时间内终止。他们可能要花很长时间来执行指定的任务,但仍将在一定的时间内终止。这类算法得出的结果常取决于输入值。

二、有限的,非确定算法 这类算法在有限的时间内终止。然而,对于一个(或一些)给定的数值,算法的结果并不是唯一的或确定的。

三、无限的算法 是那些由于没有定义终止定义条件,或定义的条件无法由输入的数据满足而不终止运行的算法。通常,无限算法的产生是由于未能确定的定义终止条件。

结论

最近针对互联网公司面试问到的关于算法的核心知识点,总结出了Java程序员面试涉及到的绝大部分面试题及答案分享给大家,希望能帮助到你面试前的复习且找到一个好的工作,也节省你在网上搜索资料的时间来学习。

2021全新完整版Java面试题地址:JAVA后端面试题整合

算法到底应该怎么学?看完以下几个案例你定将会有所感悟!!!前言柠檬水找零三角形的最大周长要素分类结论
算法到底应该怎么学?看完以下几个案例你定将会有所感悟!!!前言柠檬水找零三角形的最大周长要素分类结论
算法到底应该怎么学?看完以下几个案例你定将会有所感悟!!!前言柠檬水找零三角形的最大周长要素分类结论