一道演算法題,引發的思考

2021-07-26 04:12:17 字數 619 閱讀 4422

引言:

有人問我這樣乙個問題,希望寫出**實現

有p0,p1兩點座標,組成乙個線段,求此線段與x點的的距離

我並不知道,如何完全的實現此功能,因為求點與線的公式,我記得是高中知識,但是我已經忘得差不多了,只是知道勾股定理算兩點間距離,直線方程有個斜率,如果給我時間去細想的話,應該可以理出頭緒,得到個寫此演算法的思路。

但我所想到的是,我們做為程式設計師,有太多太多周邊的知識缺失,不可能解決所有的演算法難題,但我們程式設計師與數學家如果都去寫**的話,我們程式設計師老司機有什麼優勢呢?

正文:

一、核心的演算法,並不是那麼重要

特指做為非科研型的程式設計師(世界上99%的程式都是實用型程式設計師,非科研型),只是去完成公司的需求,那麼核心演算法,可以不會,因為可以上網查,或是公司裡的演算法程式設計師提供

二、老程式的思維(老司機),很重要

老程式會思考一些通用性的問題:

1.這個要不要封裝成乙個類去使用,好增強復用性

2.健壯性,如:上來判斷一下,p0,p1兩點,座標是不是相同

3.可能被忽視的思維漏洞,讀懂演算法,根據演算法,去看此演算法有沒有漏洞

最後,拼的是寫**的細心,因為乙個細節沒寫到位,就是bug

而這些,是在實戰專案中,更為重要的

考考你 一道題引發的小思考

有位朋友給出了一道題 有兩列火車相距100千公尺,在同一條軌道上相向行駛,一列火車的速度是每小時30千公尺,另一列的速度是每小時20千公尺。當兩列火車相距100千公尺時,乙隻鳥以120千公尺的時速開始從火車a飛向火車b,到達後再飛回火車a,如此往復直至兩列火車相撞。當兩列火車相撞時,鳥一共飛了多遠?...

一道面試題引發的思考

首先我們給出這道面試題的 以及題目 lista new arraylist list.add 1 list.add 2 for string item list 問 上段 執行會報錯嗎?如果把 1 換成 2 會報錯嗎?為什麼?首先給出答案 上面這段 執行不會報錯。把 1 換成 2 再執行就會報錯。為...

java 與 一道小題引發的思考

第一眼看這個題,以為會編譯不通過,結果正確答案會輸出 true。ps 是乙個賦值運算子,賦給某個變數乙個具體的值。是乙個比較運算子 1 基本型和基本型進行 運算子的比較,直接比較兩個值 2 基本型和封裝型進行 運算子的比較,封裝型將會自動拆箱變為基本型後再進行比較 3 封裝型和封裝型進行 運算子的比...