https://zyrastory.com/wp-includes/js/jquery/jquery.min.js
https://zyrastory.com/wp-includes/js/jquery/jquery-migrate.min.js
(function(c,l,a,r,i,t,y){
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, "clarity", "script", "btkbh92jgl");
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();
for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");ym(93103491, "init", {
clickmap:true,
trackLinks:true,
accurateTrackBounce:true
});
(function(c,l,a,r,i,t,y){
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};t=l.createElement(r);t.async=1;
t.src="https://www.clarity.ms/tag/"+i+"?ref=wordpress";y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, "clarity", "script", "btkbh92jgl");
跳至主要內容
文章觀看次數: 1,864
公司簡介 LeetCode 是一家2015年於美國成立的軟體程式公司,是目前最廣被為人知的練習程式的地方,有非常多的程式題目與解答,而一切都是基於其堅實的用戶群(針對題目討論、分享解答)
而因為其題目來源,多出自各知名軟體公司面試而來,故除了想磨練技術的工程師外,也被當成很多人面試練習的考古題庫
三分鐘完成LeetCode註冊 那讓我們開始吧!
首先先到官網 : LeetCode – The World’s Leading Online Programming Learning Platform
我們可以看到官網首頁的文字是這麼說的
“一個學習的新方法
LeetCode 是一個能幫助你提升自己的技術、擴充自己的知識跟準備資訊公司面試最好的平台”
聽起來確實挺厲害的,那我們先從旁邊的 「Create Account」開始吧
點擊後進到建立帳戶頁面
LeetCode註冊 可以選擇透過 Google、GitHub或是Facebook直接授權登入
或是填完以上4欄資料後,點擊「Sign Up」 註冊鈕 ➔ 其實這時候已經註冊完了,可以去收驗證信 了
即會進入下一個頁面(基本資料設定,非必要)
根據身分選擇是「學生」或是「專業人員」
第一個問題 : 還有多久畢業(專業人員的話則為有幾年資歷)
第二個問題 : 專業科目/科系(專業人員為目前角色/職業)
之後的兩頁因選項都一樣,故以學生版本為例
想要的工作
很貼心的為了像筆者這種有選擇困難的傢伙,準備了一個「Not sure right now/現在還不確定」的選項
面試準備(剩餘)時間
這時候我們回來收下驗證信
點擊信上連結,即完成LeetCode帳號開通
LeetCode各頁面介紹 可以看到上面分為很多不同的區塊,這次就來分別介紹下
Explore 探索 可以看到有很多學習課程可以參加,裡面大部分是免費的,只有一些有關大公司的要升級為Premium才能解鎖,如果想要增進特定方向的能力,很適合來這裡尋找
Problems 問題 ** (之後寫了一篇詳細的整理,這裡看-LeetCode 解題區介紹 & 介面改版前後差異 )
這裡就是LeetCode的核心所在,滿滿2000多題(部分題目需升級為Premium解鎖)
左邊的區塊 – 題目們,可以透過各類狀態進行搜尋及排序(難度、完成狀態、標籤…等) 右邊上面的區塊 – 五月的挑戰,每天都會有隨機的一題,每日都有完成的話就可以得到徽章的樣子 右邊下面的區塊 – 可按公司選擇題目(為Premium功能)
我們實際點進一個問題試試
左邊是題目敘述,也可以將題目加進自訂義清單中(筆者遇上看不懂或卡關的都會加進去,之後再回來看哈哈)
加入自定義清單 Solution : 官方提供的詳細解答(部分題目需升級為Premium解鎖) Discuss : 討論區,可以看到各語言的解答以及分享(可能偶爾也會看到筆者我) Submissions : 個人提交紀錄,會有提交狀況(成功/失敗)、運行時間、運行空間、使用語言
Submissions
提交記錄這裡可以看到提交時間、狀態、運行時間、使用空間及使用語言
還可以看到跟同語言提交之間的比較
右側則是程式碼撰寫及編譯的地方
高達18種程式語言可供選擇 ( 像是筆者常用的C#, Java, Python3, JavaScript都在裡面 )
可自訂測試案例,或直接使用範例的案例(Use Example Testcases)
Run Code Result 可顯示編譯結果
Contest 競賽 LeetCode每周都有舉辦線上競賽,為時均為1個半小時,共有4題,可用任意自己喜歡的語言作答
可以看到共分為兩個競賽,分為是Weekly 跟 Biweekly,分別對應單週跟雙週
競賽的排名是採積分制,4題依難度有不同的分數
同積分的話就會以完成時間來排序
舉某次比賽來當例子(不要問怎麼那麼慘,筆者當時腦袋當機了…)
比賽時會沒那麼即時的更新,這張截圖是事後的
可以看到筆者的第一題旁邊有隻Bug寫著1 ,這就代表那時候送交過錯的答案,是有加時的懲罰的(5分鐘)
事後進來點擊各題時間旁邊的圖標,是可以看到那個人成功送交的答案,所以可以學習他人的邏輯(有大神快拜!!!)
Interview 面試 為一個新功能,看官方介紹似乎是方面企業直接用LeetCode題目線上面試的樣子
還沒實際測試過,有機會再更新後續…
Discuss 討論 這裡的討論區又跟Problems那裏的不同,Problems那裏是針對當題的討論,這裡則包含了很多不同面向,可以看到面試問題、職涯、學習引導…等
LeetCode 個人頁面介紹 – Personal Page 點擊右上方頭像即可進入個人頁面 – 我的頁面範例
共可分為8個大區塊,分別為
個人檔案 – 名字、解題排名、地點、網頁…等 社群狀態 – 多少人看過、提出多少解答(Problems Discuss)、Discuss頁面? 分為兩塊,上區為解題使用過的語言、下區為解答了哪些類型的題目 競賽狀態 – 參加過的競賽及競賽的世界排名、百分比 解決的問題 – 依困難度劃分,可以看到超過幾%的人 徽章 – 像是每月的每日問題有解完就可以得到 提交狀態 – 有用過GitHub的朋友應該很熟悉,主要就是總提交次數及每日分布 又可分為3區Recent AC – 過去通過的送交(AC即為英文的Accepted),右上角可以點到更詳細的要面 Solutions – 在Problems Discuss提出的解答 Discuss – 筆者還沒用到,但應該就是該帳號在Discuss區提出的討論
附上8-2的Solutions
結論 到這裡就介紹完基本的LeetCode頁面了,希望能幫上大家一點忙,一起快樂地來刷題
有任何問題也歡迎在文章下方留言讓我知道 ( 當然也可以直接透過Messenger聯絡粉絲專頁 )
"When I wrote this code, only God and I understood what I did. Now only God knows." 寫程式記得寫註解啊…那救的是未來的自己 (當然如果你會通靈的話可以不用!?)
相關文章
LeetCode 解題區介紹 & 介面改版前後差異 – 程式美食研究中心 (zyrastory.com)
最新文章
function closePop(){document.getElementById("headlineatas").style.display = 'none';}
function openPop()
{
if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent))
{
return false;
}
var r = Math.random();
if(r>0.7 || r<0.3)
{
document.getElementById("headlineatas").style.display = '';
}
}
(function (d, sc, u) {
var s = d.createElement(sc),
p = d.getElementsByTagName(sc)[0];
s.type = "text/javascript";
s.async = true;
s.src = u;
p.parentNode.insertBefore(s, p);
})(
document,
"script",
"https://affiliate.klook.com/widget/fetch-iframe-init.js"
);
(adsbygoogle = window.adsbygoogle || []).push({});
(function (d, sc, u) {
var s = d.createElement(sc),
p = d.getElementsByTagName(sc)[0];
s.type = "text/javascript";
s.async = true;
s.src = u;
p.parentNode.insertBefore(s, p);
})(
document,
"script",
"https://affiliate.klook.com/widget/fetch-iframe-init.js"
);
(adsbygoogle = window.adsbygoogle || []).push({});
(adsbygoogle = window.adsbygoogle || []).push({});
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
js = d.createElement(s); js.id = id;
js.src = 'https://connect.facebook.net/en_US/sdk/xfbml.customerchat.js#xfbml=1&version=v6.0&autoLogAppEvents=1'
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
function returnDefault(item)
{
item.innerText = "Copy"
item.style.color = "white"
item.style.backgroundColor = "CornflowerBlue";
}
if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent) == false) //20221128 手機用戶移除copy功能
{
jQuery('code').each(function () {
var btn = document.createElement("button");
btn.innerHTML = "Copy";
btn.onmousedown = "event.preventDefault();";
btn.setAttribute('class', 'btnC');
btn.onclick = function(){
var k = this.nextSibling;
var textArea = document.createElement("textarea");
textArea.style.position = 'fixed';
textArea.style.top = 0;
textArea.style.left = 0;
textArea.style.width = '2em';
textArea.style.height = '2em';// We don't need padding, reducing the size if it does flash render.
textArea.style.padding = 0;// Clean up any borders.
textArea.style.border = 'none';
textArea.style.outline = 'none';
textArea.style.boxShadow = 'none';// Avoid flash of the white box if rendered for any reason.
textArea.style.background = 'transparent';textArea.value = k.textContent;document.body.appendChild(textArea);
textArea.focus();
textArea.select();var successful = document.execCommand('copy');
var msg = successful ? 'successful' : 'unsuccessful';if(successful)
{
this.focus();
this.style.backgroundColor = "green";
this.innerText = "✔Copied"
//openPop();
setTimeout(( ()=>returnDefault(this)),1850)
}document.body.removeChild(textArea);
};var parent = this.parentNode;
parent.insertBefore(btn, this);
});
}
var eztoc_smooth_local = {"scroll_offset":"30","add_request_uri":""};
https://zyrastory.com/wp-content/plugins/easy-table-of-contents/assets/js/smooth_scroll.min.js
https://zyrastory.com/wp-content/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js
https://zyrastory.com/wp-content/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js
var ezTOC = {"smooth_scroll":"1","visibility_hide_by_default":"","scroll_offset":"30","fallbackIcon":"<span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span>","chamomile_theme_is_on":""};
https://zyrastory.com/wp-content/plugins/easy-table-of-contents/assets/js/front.min.js
https://zyrastory.com/wp-content/plugins/highlighting-code-block/assets/js/prism.js
var hcbVars = {"showCopyBtn":"","copyBtnLabel":"Copy code to clipboard"};
https://zyrastory.com/wp-content/plugins/highlighting-code-block/build/js/hcb_script.js
var ct_localizations = {"ajax_url":"https:\/\/zyrastory.com\/wp-admin\/admin-ajax.php","public_url":"https:\/\/zyrastory.com\/wp-content\/themes\/blocksy\/static\/bundle\/","rest_url":"https:\/\/zyrastory.com\/wp-json\/","search_url":"https:\/\/zyrastory.com\/search\/QUERY_STRING\/","show_more_text":"\u986f\u793a\u66f4\u591a","more_text":"\u66f4\u591a","search_live_results":"\u641c\u5c0b\u7d50\u679c","search_live_no_result":"\u627e\u4e0d\u5230\u7b26\u5408\u7684","search_live_one_result":"\u60a8\u5df1\u627e\u5230 %s \u500b\u7b26\u5408\u7684. \u8acb\u6309 Tab \u9375\u4f86\u9078\u64c7\u5b83.","search_live_many_results":"\u60a8\u5df1\u627e\u5230 %s \u500b\u7b26\u5408\u7684. \u8acb\u6309 Tab \u9375\u4f86\u9078\u64c7\u5b83.","expand_submenu":"\u5c55\u958b\u4e0b\u62c9\u9078\u55ae","collapse_submenu":"\u6536\u5408\u4e0b\u62c9\u9078\u55ae","dynamic_js_chunks":[],"dynamic_styles":{"lazy_load":"https:\/\/zyrastory.com\/wp-content\/themes\/blocksy\/static\/bundle\/non-critical-styles.min.css?ver=2.0.45","search_lazy":"https:\/\/zyrastory.com\/wp-content\/themes\/blocksy\/static\/bundle\/non-critical-search-styles.min.css?ver=2.0.45","back_to_top":"https:\/\/zyrastory.com\/wp-content\/themes\/blocksy\/static\/bundle\/back-to-top.min.css?ver=2.0.45"},"dynamic_styles_selectors":[{"selector":".ct-header-cart, #woo-cart-panel","url":"https:\/\/zyrastory.com\/wp-content\/themes\/blocksy\/static\/bundle\/cart-header-element-lazy.min.css?ver=2.0.45"},{"selector":".flexy","url":"https:\/\/zyrastory.com\/wp-content\/themes\/blocksy\/static\/bundle\/flexy.min.css?ver=2.0.45"}],"lang":"zh"};
https://zyrastory.com/wp-content/themes/blocksy/static/bundle/main.js
https://zyrastory.com/wp-includes/js/comment-reply.min.js
(function() {
var expirationDate = new Date();
expirationDate.setTime( expirationDate.getTime() + 31536000 * 1000 );
document.cookie = "pll_language=zh; expires=" + expirationDate.toUTCString() + "; path=/; secure; SameSite=Lax";
}());
window.addEventListener("DOMContentLoaded",(e=>{document.querySelectorAll('img[loading="lazy"]').forEach((e=>{e.getBoundingClientRect().top<=window.innerHeight&&(e.loading="eager")}))}));
ai_front = {"insertion_before":"BEFORE","insertion_after":"AFTER","insertion_prepend":"PREPEND CONTENT","insertion_append":"APPEND CONTENT","insertion_replace_content":"REPLACE CONTENT","insertion_replace_element":"REPLACE ELEMENT","visible":"VISIBLE","hidden":"HIDDEN","fallback":"FALLBACK","automatically_placed":"Automatically placed by AdSense Auto ads code","cancel":"Cancel","use":"Use","add":"Add","parent":"Parent","cancel_element_selection":"Cancel element selection","select_parent_element":"Select parent element","css_selector":"CSS selector","use_current_selector":"Use current selector","element":"ELEMENT","path":"PATH","selector":"SELECTOR"};