蘇州培訓網(wǎng) > 蘇州web前端培訓機構 > 蘇州其然軟件開發(fā)培訓
首頁 培訓網(wǎng) 最新資訊 熱門問答

蘇州其然軟件開發(fā)培訓

13013833891 免費試聽

您當前的位置: 蘇州軟件系統(tǒng)培訓 > 蘇州web前端培訓 > 蘇州java哪個培訓好

蘇州java哪個培訓好_JAVA培訓

¥詳詢

班制:周末班

蘇州其然軟件開發(fā)
上課(咨詢)地址:蘇州市昆山市震川西路111號名仕大廈
報名咨詢 預約試聽
課程介紹
蘇州java哪個培訓好
一個合格的未來 Java工程師

蘇州java哪個培訓好

蘇州java哪個培訓好

Java培訓Java與自學Java的差距

蘇州java哪個培訓好

培訓Java與自學Java的差距

我以前也是自學Java,在一家公司跟著別人學,以前是別人眼中的菜鳥,現(xiàn) 在是別人眼中的大神,Java很簡單的,貴在堅持和多練,沒必要花那培訓錢。如果真的要去學的話,

選擇Java培訓機構要注意這兩點基本上就能避免一些坑:

1. 老師沒有正經(jīng)公司工作經(jīng)歷,或者沒有已經(jīng)在線上正常運轉的產(chǎn)品。一 些所謂培訓班的老師水平往往比較一般,甚至還有培訓出來后又接著培訓別人的。

2、是不是會承諾幫你找到工作,要找到好的工作,不是靠別人給你保證的 ,還是要靠自己提升能力。

建議多自己學習加上找些好的代碼主動學習。例如github,多練習網(wǎng)上很多 網(wǎng)站里真正好的代碼。作為Java工程師,可以多看看spring文檔,看看很多已經(jīng)成熟的框架,深入去體會。另外,學軟件等等**好還是自己多學,找點 視頻教程之類,也省點錢。

Java基礎語法

蘇州java哪個培訓好

Java基礎語法

Java基礎語法

流程控制語句

Java 編譯器執(zhí)行流程

if 分支結構

switch 選擇結構與相關規(guī)則

循環(huán)結構

for 循環(huán)

while 循環(huán)

do-while 循環(huán)語句

各語句性能對比與應用場景

特殊流程控制語句

方法的聲明與使用

方法調(diào)用的過程分析

跨類調(diào)用方法

參數(shù)的值傳遞

方法的重載 Overload

Leetcode 179. Largest Number


>

Given a list of non negative integers, arrange them such that they form the largest number.

For example, given [3, 30, 34, 5, 9], the largest formed number is 9534330.

Note: The result may be very large, so you need to return a string instead of an integer.

s思路: 1. 正如我所理解。需要排序。例如:[3, 30, 34, 5, 9],先把所有數(shù)變成string,然后排序:從左邊起逐位比較,如果相等,則都移動到右邊一位比較,這都很平常。有趣的一點是,3和30比較,第0位同為3,相等,但是3只有一位不能再往右移動了,此時就不移動,而只移動30的指針到0,比較3和0。也就是說移動受到邊界的限制,只是這里處理邊界的方法是停留在邊界處,并取邊界值比較。再比如:3和34,那3就會和4比較,發(fā)現(xiàn)4>3,所以34比3大,因為34如果放在3前面組成343比34放在3后面組成的334大。(刪除的部分不正確) 2. debug了好久,重新來說。有很多case,例如:3和34比較,可以認為3這個數(shù)停在這個位置上了,但是這么特殊的一個例子,3只有一位,怎么看的出來規(guī)律呢,所以問題是被簡化了,顯然自己沒看到更general的case。例如,824和8247,當824的指針移動到4時,下一刻應該去向何處?應該把8247的7和824的8比較才對呀,我馬上結論說那就是到了結尾后下一步就再取開頭的數(shù)比較。再例如,323和3233比較,當走到323結尾的3時,下一刻如果回到開頭的3,那么3233也是3,難道這兩個數(shù)怎么放都可以嗎?顯然323 3233<3233 323,所以還是不對,不過結合上一次的教訓,應該不用急著全盤否定這種做法,可能我們離正確的做法又近了!既然323遍歷到**右邊數(shù)之后還要回到**左邊數(shù)繼續(xù)比較,那么3233也可以啊,當我們3233到了**右邊的3,下一步不是跳出循環(huán),而是繼續(xù)回到**左邊數(shù),所以:3233的**個數(shù)3和323的第二個數(shù)2比較,這不,馬上就可以看出大小!到這里,自然想到,如果是333和3333比較,結果肯定是相等,所以兩個數(shù)循環(huán)多少次都不可能不相等,因此必須又一個stopping rule,那就是**長的數(shù)的長度的兩倍(后來又進一步縮小范圍,stopping條件是循環(huán)次數(shù)是兩個數(shù)的長度之和)即:3333循環(huán)兩次還是相等,那就真的相等,這時候就需要跳出while。 3. 這里思維的進步,需要單獨提一下。昨天 Leetcode 165. Compare Version Numbers的時候,就把比較放在while內(nèi)和while外到處都是,一點沒打包嚴實,不光思路不清,debug也不易,**后把比較功能都想辦法塞進while內(nèi),世界一下美好了!今天剛開始也出現(xiàn)過,沒多想就把比較不等的放在while內(nèi),比較相等的又放在while外。不過昨天的記錄,今天腦子馬上就冒出一個聲音說要想辦法把兩部分的代碼都塞進while里面,果然就簡單很多,而且**后beat 96%. 4. 補充一點,題做多了,和以前僵硬的思路比,現(xiàn)在思維更靈活了,思維的訓練和肌肉的訓練很相似,或者說這兩者本就沒什么差別,尤其是自己嘗試每天去捕捉思維的形狀。越是去觀察思維的樣子,思維反倒容易放松,也就越容易reshape,而那些批評自我羨慕別人并不能讓自己思維變化,反而徒增煩惱。就拿這道題說,剛開始有很大一部分是連蒙帶猜的,想到兩個指針到結尾時仍相等怎么辦時,就思維幾乎停在這個問題,沒有自然而然或努力嘗試去深入思考這個問題,而是找了兩個特殊的簡單的例子觀察得出一個簡化的方法,沒有搞清楚為什么。整個思維過程就是這樣子,后來debug把復雜的case拿出來一研究才發(fā)現(xiàn)兩個指針應該循環(huán)往復,問題一下就有趣了些。 5. 這道題反映的思維的短板在哪兒呢?還要說兩個指針到尾巴后如何處理的事,自己給自己的選項就是試圖簡化答案,比如就停在尾巴,或回到開頭停下。試圖讓指針停在某一個具體的位置,本身這個答案就沒有新意,停在一個地方,而不動起來,說明思維或者自己潛意識在圖省事,怕麻煩,都不愿意讓指針動起來。指針不動,那腦子當然也動不了,這就expose思維僵化的一瞬間。當然,**后能打破思維的靜態(tài)和慣性,讓指針繼續(xù)循環(huán)動起來,說明腦子里本來就有動的不僵化的一面,只是被這個強大的僵化的思維給覆蓋了! 6. 看了網(wǎng)上答案,這個題還有一個代碼和理解起來都很容易的做法:如何判斷a和b誰應該放在前面的問題?比較a b和b a看誰更大,這個比較直接用string的比較就可以了,因此**后還是一個簡潔的數(shù)學題,不過這個方法每次都要concatenate兩個string,比較費時間! 7. 再思考一下,這個數(shù)學的方法是怎么想到的?自己想到的方法是深入細節(jié),挑戰(zhàn)各路extreme case,而且**終也在各路細節(jié)中摸爬滾打出一條正確的方式—循環(huán)指針,一言以蔽之,自己的方法是bottom-up,希望從底層往上解決問題;而利用數(shù)學的方法,思考就不是從細節(jié)入手了,而從系統(tǒng)出發(fā),從頂層設計入手,是一種top-down的方法。兩種方法各有優(yōu)勢,不必厚此薄彼。數(shù)學的方法,是一眼能看到10里的人容易想出來的;從底層入手的,對抗各路limit case的適合一眼能看到1里的人容易想到了,屬于不同世界的人看世界的角度。也不是說世界不同,是處在世界的位置不同,一眼能看10里,那是因為別人站在數(shù)學的高度看了,所以眼里就是公式,如何用公式把世界給完美的模擬;一眼看1里,沒有數(shù)學這棟高樓,就只能泥地里打滾,combat艱難的各路case。多從數(shù)學的角度出發(fā),尤其是發(fā)現(xiàn)目前腦袋里冒出來的方法要面臨很多瑣碎的extreme case時!

//方法1:循環(huán)比較大小 class Solution { public: string largestNumber(vector<int>& nums) { vector<string> ss(nums.size());//bug:全零就不用轉換了,直接返回0. string res; int zero=0; for(int i=0;i<nums.size();i ){ zero =(nums[i]==0); ss[i]=to_string(nums[i]); } if(zero==nums.size()) return "0"; sort(ss.begin(),ss.end(),[](string&a,string&b){ int n1=a.size(),n2=b.size(); int i=0; /*while(i<max(n1,n2)){//不正確的編碼 char c1,c2; if(i<n1) c1=a[i]; //else c1=a[n1-1];//bug1 //else c1=a[0];//bug2 else c1=max(a[0],a[n1-1]); if(i<n2) c2=b[i]; else c2=max(b[0],b[n2-1]); if(c1>c2) return true; if(c1<c2) return false; i ; }*/ int n=n1 n2; while(i<n){ char c1,c2; c1=a[i%n1]; c2=b[i%n2];; if(c1>c2) return true; if(c1<c2) return false; i ; } return true; }); for(string str:ss){ res =str; } return res; } }; //方法2:簡潔明了,用數(shù)學之美成就代碼之美! class Solution { public: string largestNumber(vector<int>& nums) { vector<string> ss(nums.size());//bug:全零就不用轉換了,直接返回0. string res; for(int i=0;i<nums.size();i ){ ss[i]=to_string(nums[i]); } sort(ss.begin(),ss.end(),[](string&a,string&b){ return a b>b a; }); for(string str:ss){ res =str; } return res[0]== 0 ?"0":res; } };


相關推薦:


蘇州JAVA培訓   蘇州JAVA培訓班   蘇州JAVA培訓機構

體驗課預約試聽

倒計時

12:00:00

課程熱線:

13013833891
在線咨詢

客服在線時間:早上9點~下午6點,其他時間請在線預約報名或留言,謝謝!

蘇州web前端

免費體驗課開班倒計時

11: 41: 09

稍后會有專業(yè)老師給您回電,請保持電話暢通

咨詢電話:13013833891
推薦機構 全國分站 更多課程

本周僅剩 個試聽名額

請鍵入信息,稍后系統(tǒng)將會把領獎短信發(fā)至您的手機

申請試聽名額

已有10254人申請免費試聽

01電話咨詢 | 13013833891

QQ:1413838287
加盟合作:0755-83654572