天天看點

算法到底應該怎麼學?看完以下幾個案例你定将會有所感悟!!!前言檸檬水找零三角形的最大周長要素分類結論

前言

算法是指解題方案的準确而完整的描述,是一系列解決問題的清晰指令,算法代表着用系統的方法描述解決問題的政策機制。也就是說,能夠對一定規範的輸入,在有限時間内獲得所要求的輸出。如果一個算法有缺陷,或不适合于某個問題,執行這個算法将不會解決這個問題。不同的算法可能用不同的時間、空間或效率來完成同樣的任務。一個算法的優劣可以用空間複雜度與時間複雜度來衡量。下面是幾個算法案例解析…

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後端面試題整合

算法到底應該怎麼學?看完以下幾個案例你定将會有所感悟!!!前言檸檬水找零三角形的最大周長要素分類結論
算法到底應該怎麼學?看完以下幾個案例你定将會有所感悟!!!前言檸檬水找零三角形的最大周長要素分類結論
算法到底應該怎麼學?看完以下幾個案例你定将會有所感悟!!!前言檸檬水找零三角形的最大周長要素分類結論