兩道筆試題

2021-08-29 08:57:12 字數 831 閱讀 6288

昨天一朋友找工作, 碰到兩道演算法筆試題, 都是當於鍊錶操作的.

原題具體的還原不過來了, 不過大致是:

1. 有一單鏈表, 找出最後第m個節點.

昨天看到問題時,想到了小學應用題:

汽車過山洞, 假如這個汽車開著開著, 等到車頭剛要出山洞, 車尾離山洞出口也有一段距離嘛...

這樣, 這個題方法出來了

cpp **

node* findlastnode(node* root, int m)   

// 此時

//           |---------------------|  這個是山洞

//           >-------->

// 一起前進吧

while (head->next)   

// 此時

//           |---------------------|  這個是山洞

//                        >-------->

return tail;  

}  當然,特殊情況要考慮, 不過那....

2.  有一單鏈表, 判斷是否存在環

有環? 走著走著, 卻突然發現, 怎麼也走不完, 可是這要走到什麼時候? 此法不通

可是怎麼也想不出好辦法. 只有乙個笨方法:

看看現在走的路, 是不是已走過...

cpp **

bool hascircle(node* root)   

}  cur = cur->next;      

}  return

false;  

}  對於2, 不知道有沒有更好的辦法?

C 兩道筆試題

現給定乙個含有n個元素的陣列,請隨機獲取其中的m個元素 不能重複獲取 include include using namespace std void grial int a,int n,int x for i 0 i k i int main grial a,sizeof a sizeof int...

求教兩道演算法筆試題

最近在找工作,有把題目直接發到郵箱裡的,本人水平有限,貼出來大家幫忙看下!1 設計乙個遍歷演算法,按照方格的標號進行順序遍歷,要求一次遍歷完成所有標號方格的順序遍歷 114 2731 3539 6372 8186 9196 98100 102104 159168215 2832 3640 6473 ...

兩道筆試題的感觸

今天做了兩道筆試題,收益良多。有些題,你會發現,雖然並不難,但是卻很容易沒有思路或者出錯,這都是源自平時的不求甚解。很多知識點,自以為已經掌握,其實只是管中窺豹,可見一斑。不要一味墨守成規,也要用於思考,很多東西既要知其然,也要知其所以然。我一直覺得了解和精通中間差著十萬八千里,看來還有很長一段路要...