只會做演算法題
A. 我只會做難題,不會做簡單題,我該雜辦啊
童鞋 : 會做難題,不會做簡單的。說不過去啊~~! 是不是你的心裡會認為這么簡單。根本就『不值得』你去做呢~! 要做大事,要從小事做起~!
第一英語必須過五級第二學習編程是一件好事 不過之前你得先了解 你學習編程的目的是什麼 這個很重要 因為目的決定發展方向
目前對於編程有很多種編程語言以及相對應的開發軟體 下面說明一些常用的編程語言 根據你的情況選一種語言進行學習 不要盲亂學習
C語言 一種可移植性和多系統平台的編程語言 開發軟體TC
VB 一種可以說是既學既用的軟體開發語言 開發軟體如:VB6.0
DELPHI 一種和VB差不多的既學既用的軟體開發語言不過其功能遠比VB強大 代碼書寫上更加方便
開發軟體 DELPHI7.0
JAVA 一種功能強大可移植性強開發語言
程序語言,顧名思義就是語言,是用於交流的,程序就是計算機的語言和人的語言的翻譯者,做一個程序員就是要把人類世界的問題用計算機的方法去解決和展現,可是因為種種原因,大多數人在如何學好語言,如何學好開發平台上疲於奔命,到頭來你只會敲寫代碼。
程序基本上都是自學的,買書是一開始碰到的最頭痛的問題,計算機的書大多都很貴,現將我的一點經驗供大家參考:
如果想做一個合格的程序員,C++是一定要學的,
首先你要花兩個月的時間學習C,C++,這樣的書很多,去選一些大學的教材足亦,切記,不要花過多的時間研究C++,兩個月夠了,只要學會其中語法就行了,不要為了深入用DOS編寫菜單什麼的,那是吃飽人參了。
如果你有過多的時間,接下來你可以學習數據結構,推崇《數據結構C++語言描述》,清華大學出版,58元,但如果無過多時間,還是不看為妙,至少我現在從未用過這本書的知識,許多東西MFC VCL等開發平台都為你已經做好。
接下來開始學習Windows下的SDK編程, 推崇《Windows程序設計》160元,建議去借,不要買,而且你只看上冊,你只要了解Windows的運作機制即可。兩個月
然後你將轉入VC的世界,既然要在Windows下編程,VC不可不學, 推崇《VC++技術內幕》第四版,96元,三個月,不要全部看,看前面的三部分,後面不要看。後面的只是對COM,資料庫,Internet形如雞肋的介紹。
接下來你應該考慮一下你將要發展的方向,如果是做資料庫,你可以用VB和Delphi或CB, 如果要做通信方面,或者硬體,你將要深入VC, 如果是WEB相關的,去學學ASP,JAVA,JSP,XML等,但有一樣你必須要學的,COM。COM與其說是一樣新的技術,還不如說是種機制,推崇潘愛民的《COM原理和應用》39元,你可以一邊看這本書,一邊學習些ActiveX組件,ATL控制項等等。如果你有的是時間,不急於找工作,你還可以看看《Windows高級編程》或《Windows核心編程》,但不管怎麼樣,你要切記,VC不是用來做界面和資料庫的,做網路的現在也有JAVA,都是用來做一些很底層的東西,VC是很高薪的,如果你對自己有充分的信心和有的是時間,你才可以深入VC。否則的話,還是看看人才市場,看看行情,再說。
還有一點切記,有些書,諸如《MFC深入淺出》這些書主要是關於那些技術原理的介紹,我個人認為程序只是工具,只是技術,只要學會用,能完成任務即可,如果有的是時間,才會去探索根源,也許有許多人會說,懂了原理對你編程會有很大幫助,我不否認,但是,要知道,就算你編程技術如何了得,你只是個技術人員,當你學了那麼多的技術和知識,第一,計算機的知識其實是各大公司制定出的標准,標准變了,你不是白學了嗎?第二,當你花了幾年的時間學習,到頭來你只不過程序水平提高一點。我認為應當將你的大部分智力和精力用在如何與人打交道,電腦讓你用的好有什麼用,人腦讓你擺弄的好才算真本事,就如《黑冰》裡面的計算機工程師,雖然對計算機十分精通,可有什麼用,還不是死在王志文的手裡?而且死的很慘,臉都毀了。
另外,不要去學你喜歡的,也不要去費勁腦子想該學什麼,看看人才市場,市場需要什麼,你學什麼
C. leetcode演算法
*最近在做一些 leetcode 的演算法題,我會將自己做過的演算法題記錄下來以供大家參考,如果查找不方便請看 油猴插件實現網站左側目錄生成。
給定一個排序數組,你需要在 原地 刪除重復出現的元素,使得每個元素只出現一次,返回移除後數組的新長度。
不要使用額外的數組空間,你必須在 原地修改輸入數組 並在使用 O(1) 額外空間的條件下完成。
示例:
解答:
給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。
設計一個演算法來計算你所能獲取的最大利潤。你可以盡可能地完成更多的交易(多次買賣一支股票)。
注意:你不能同時參與多筆交易(你必須在再次購買前出售掉之前的股票)。
示例:
提示:
解答:
給定一個數組,將數組中的元素向右移動 k 個位置,其中 k 是非負數。
示例:
說明:
解答:
給定一個整數數組,判斷是否存在重復元素。
如果任意一值在數組中出現至少兩次,函數返回 true 。如果數組中每個元素都不相同,則返回 false 。
示例:
解答:
給定一個非空整數數組,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。
說明:
你的演算法應該具有線性時間復雜度。 你可以不使用額外空間來實現嗎?
示例:
解答:
給定兩個數組,編寫一個函數來計算它們的交集。
示例:
說明:
進階:
解答:
給定一個由整數組成的非空數組所表示的非負整數,在該數的基礎上加一。
最高位數字存放在數組的首位, 數組中每個元素只存儲單個數字。
你可以假設除了整數 0 之外,這個整數不會以零開頭。
示例:
解答:
給定一個數組 nums ,編寫一個函數將所有 0 移動到數組的末尾,同時保持非零元素的相對順序。
示例:
說明:
給定一個整數數組 nums 和一個目標值 target ,請你在該數組中找出和為目標值的那 兩個 整數,並返回他們的數組下標。
你可以假設每種輸入只會對應一個答案。但是,數組中同一個元素不能使用兩遍。
示例:
解答:
判斷一個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。
數獨部分空格內已填入了數字,空白格用 '.' 表示。
示例:
說明:
解答:
給定一個 *n *× *n* 的二維矩陣表示一個圖像。
將圖像順時針旋轉 90 度。
說明:
你必須在 原地 旋轉圖像,這意味著你需要直接修改輸入的二維矩陣。 請不要 使用另一個矩陣來旋轉圖像。
示例:
解答:
編寫一個函數,其作用是將輸入的字元串反轉過來。輸入字元串以字元數組 char[] 的形式給出。
不要給另外的數組分配額外的空間,你必須 原地修改輸入數組 、使用 O(1) 的額外空間解決這一問題。
你可以假設數組中的所有字元都是 ASCII 碼表中的可列印字元。
示例:
解答:
給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
示例:
注意:
假設我們的環境只能存儲得下 32 位的有符號整數,則其數值范圍為 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢出那麼就返回 0。
解答:
給定一個字元串,找到它的第一個不重復的字元,並返回它的索引。如果不存在,則返回 -1。
示例:
解答:
給定兩個字元串 s 和 t ,編寫一個函數來判斷 t 是否是 s 的字母異位詞。
長度一樣,包含的字母都一樣,每個字元出現的頻率也一樣,只是順序不同而已,這就屬於異位詞,
示例:
說明:
你可以假設字元串只包含小寫字母。
進階:
如果輸入字元串包含 unicode 字元怎麼辦?你能否調整你的解法來應對這種情況?
解答:
給定一個字元串,驗證它是否是迴文串,只考慮字母和數字字元,可以忽略字母的大小寫。
說明 :本題中,我們將空字元串定義為有效的迴文串。
示例:
解答:
請你來實現一個 atoi 函數,使其能將字元串轉換成整數。
首先,該函數會根據需要丟棄無用的開頭空格字元,直到尋找到第一個非空格的字元為止。接下來的轉化規則如下:
注意 :假如該字元串中的第一個非空格字元不是一個有效整數字元、字元串為空或字元串僅包含空白字元時,則你的函數不需要進行轉換,即無法進行有效轉換。
在任何情況下,若函數不能進行有效的轉換時,請返回 0 。
提示 :
示例:
解答:
實現 strStr() 函數。
給定一個 haystack 字元串和一個 needle 字元串,在 haystack 字元串中找出 needle 字元串出現的第一個位置 (從0開始) 。如果不存在,則返回 -1 。
示例:
說明:
當 needle 是空字元串時,我們應當返回什麼值呢?這是一個在面試中很好的問題。
對於本題而言,當 needle 是空字元串時我們應當返回 0 。這與C語言的 strstr() 以及 Java的 indexOf() 定義相符
解答:
「外觀數列」是一個整數序列,從數字 1 開始,序列中的每一項都是對前一項的描述。前五項如下:
1 被讀作 "one 1" ("一個一") , 即 11 。
11 被讀作 "two 1s" ("兩個一") , 即 21 。
21 被讀作 "one 2", "one 1" ("一個二" , "一個一") , 即 1211 。
給定一個正整數 n(1 ≤ n ≤ 30),輸出外觀數列的第 n 項。
注意 :整數序列中的每一項將表示為一個字元串。
示例:
解答:
編寫一個函數來查找字元串數組中的最長公共前綴。
如果不存在公共前綴,返回空字元串 "" 。
示例:
說明:
所有輸入只包含小寫字母 a-z 。
解答:
請編寫一個函數,使其可以刪除某個鏈表中給定的(非末尾)節點,你將只被給定要求被刪除的節點。
現有一個鏈表 -- head = [4,5,1,9],它可以表示為:
示例:
說明:
解答:
給定一個鏈表,刪除鏈表的倒數第 n 個節點,並且返回鏈表的頭結點。
示例:
說明:
給定的 n 保證是有效的。
進階:
你能嘗試使用一趟掃描實現嗎?
解答:
反轉一個單鏈表。
示例:
解答:
將兩個升序鏈表合並為一個新的升序鏈表並返回。新鏈表是通過拼接給定的兩個鏈表的所有節點組成的。
示例:
解答:
請判斷一個鏈表是否為迴文鏈表。
示例:
解答:
給定一個鏈表,判斷鏈表中是否有環。
為了表示給定鏈表中的環,我們使用整數 pos 來表示鏈表尾連接到鏈表中的位置(索引從 0 開始)。 如果 pos 是 -1 ,則在該鏈表中沒有環。
示例:
解答:
給定一個二叉樹,找出其最大深度。
二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。
說明 : 葉子節點是指沒有子節點的節點。
示例:
給定二叉樹 [3,9,20,null,null,15,7] ,
返回它的最大深度 3 。
解答:
給定一個二叉樹,判斷其是否是一個有效的二叉搜索樹。
假設一個二叉搜索樹具有如下特徵:
示例:
解答:
給定一個二叉樹,檢查它是否是鏡像對稱的。
例如,二叉樹 [1,2,2,3,4,4,3] 是對稱的。
但是下面這個 [1,2,2,null,3,null,3] 則不是鏡像對稱的:
解答:
給你一個二叉樹,請你返回其按 層序遍歷 得到的節點值。 (即逐層地,從左到右訪問所有節點)。
示例:
二叉樹: [3,9,20,null,null,15,7] ,
返回其層次遍歷結果:
解答:
將一個按照升序排列的有序數組,轉換為一棵高度平衡二叉搜索樹。
本題中,一個高度平衡二叉樹是指一個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。
示例:
給定有序數組: [-10,-3,0,5,9] ,
一個可能的答案是: [0,-3,9,-10,null,5] ,它可以表示下面這個高度平衡二叉搜索樹:
解答:
給你兩個有序整數數組 nums1 和 nums2,請你將 nums2 合並到 nums1 中,使 nums1 成為一個有序數組。
說明:
示例:
解答:
你是產品經理,目前正在帶領一個團隊開發新的產品。不幸的是,你的產品的最新版本沒有通過質量檢測。由於每個版本都是基於之前的版本開發的,所以錯誤的版本之後的所有版本都是錯的。
假設你有 n 個版本 [1, 2, ..., n] ,你想找出導致之後所有版本出錯的第一個錯誤的版本。
你可以通過調用 bool isBadVersion(version) 介面來判斷版本號 version 是否在單元測試中出錯。實現一個函數來查找第一個錯誤的版本。你應該盡量減少對調用 API 的次數。
示例:
解答:
假設你正在爬樓梯。需要 n 階你才能到達樓頂。
每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?
注意 :給定 n 是一個正整數。
示例:
解答:
給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。
如果你最多隻允許完成一筆交易(即買入和賣出一支股票一次),設計一個演算法來計算你所能獲取的最大利潤。
注意 :你不能在買入股票前賣出股票。
示例:
解答:
給定一個整數數組 nums ,找到一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。
示例:
解答:
你是一個專業的小偷,計劃偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。
給定一個代表每個房屋存放金額的非負整數數組,計算你在不觸動警報裝置的情況下,能夠偷竊到的最高金額。
示例:
解答:
打亂一個沒有重復元素的數組。
示例:
解答:
設計一個支持 push , pop , top 操作,並能在常數時間內檢索到最小元素的棧。
示例:
解答:
寫一個程序,輸出從 1 到 n 數字的字元串表示。
示例:
解答:
統計所有小於非負整數 n 的質數的數量。
示例:
解答:
給定一個整數,寫一個函數來判斷它是否是 3 的冪次方。
示例:
解答:
羅馬數字包含以下七種字元: I , V , X , L , C , D 和 M 。
例如,羅馬數字 2 寫做 II ,即為兩個並列的 1 。 12 寫做 XII ,即為 X + II 。 27 寫做 XXVII , 即為 XX + V + II 。
通常情況下,羅馬數字中小的數字在大的數字的右邊。但也存在特例,例如 4 不寫做 IIII ,而是 IV 。數字 1 在數字 5 的左邊,所表示的數等於大數 5 減小數 1 得到的數值 4 。同樣地,數字 9 表示為 IX 。這個特殊的規則只適用於以下六種情況:
示例:
解答:
編寫一個函數,輸入是一個無符號整數,返回其二進製表達式中數字位數為 『1』 的個數(也被稱為 漢明重量 )。
示例:
提示:
D. 阿裡面試官:恕我直言,搞懂這10道演算法題,輕松拿20K不是問題
01打怪獸
難度:容易
現在有3隻怪獸,他們的都有自己的血量a,b,c(1<=a,b,c<=100),當Tom打死第一怪獸的時候花費的代價為0,其餘的怪獸的代價為當前的怪獸的血量減去上一個怪獸的血量的絕對值。問Tom打死這些怪獸所需要的最小代價
02數組變換
難度:中等
給出一個長度為 n 的數組,和一個正整數 d。 你每次可以選擇其中任意一個元素 a[i] 將其變為 a[i] + d 或 a[i] - d,這算作一次操作。你需要將所有的元素全部變成相等元素,如果有解,請輸出最小操作次數,如果無解請輸出-1。
01超級區間
難度:中等
Tom現在有一個長度為n的數組,Jerry給Tom定義了一種超級區間,如果區間[l,r]滿足(a[l]+…+a[r])>=k,則區間[l,r]被稱為超級區間,現在Jerry想讓Tom告訴他數組中有多少個超級區間。
02能量半徑
難度:中等
codancer來到了一個能量平面上的中心,坐標為(0,0),接下來巫師Tom會在q個坐標上放置能量點,每個能量點的能量值為1,為了打敗哥斯拉,他需要至少k點的能量,因此他想確定一個最小的整數半徑r使得codancer能夠從這個圓心為(0,0),半徑為r的圓形區域內得到至少k個能量值,請你幫他確定最小的整數半徑r。
01找出二叉搜索樹的第2大的數
難度:容易
給定一個二叉搜索樹,找出其第二大的數。
02字元配對
難度:中等
給你一個字元串,字元串中僅包含"A","B",現在有四種字元串"AA","AB","BA","BB",每種字元串都有他們的權值,問從給出的字元串中能夠得到的最大權值為多少(一個字元只能屬於一個子字元串)?
01斐波那契字元串
難度:中等
Tom發現了一種神奇的字元串-斐波那契字元串,定義f[1]=0,f[2]=1,對於所有的i>2都有f[i]=f[i-2]+f[i-1],其中「+」代表拼接,比如01+10=0110,現在對於字元串f[n],請判斷f[n]的第k項是0,還是1?
01Hikari and Interstellar Experience
難度:容易
在無垠的宇宙中,有 n 個星球,第 i 個星球有權值vi 。由於星球之間距離極遠,因此想在有限的時間內在星際間旅行,就必須要在星球間建立傳送通道。 任意兩個星球之間均可以建立傳送通道,不過花費並不一樣。 第 i 個星球與第 j 個星球的之間建立傳送通道的花費是lowbit(vi ⊕ vj) ,其中⊕為二進制異或,而lowbit(x)為 x 二進制最低位的值,例如lowbit(5) = 1,lowbit(8) = 8 。 特殊地,lowbit(0) = 0。 Hikari 想在這 n 個星球間穿梭,於是――你需要告訴 Hikari,要使這 n 個星球相互可達,需要的花費最少是多少?
02二進制字元串
難度:中等
Tom得到了一個二進制字元串s,即s只由Ɔ'和Ƈ'組成,現在令d(t)代表二進制字元串t在十進制下的值。 那麼d(「011」)=3,d(「0001000」)=4,如果t的長度等於d(t),那麼就稱t是奇妙串,現在Tom想知道s中有多少個子串是奇妙串?
01小明的數學作業
難度:容易
眾所周知,小明是一個數學小能手,有一天數學老師給了小明一個長度為n(2<=n<=5000)的序列,其中第i個數是ai(0<=ai<=1e9),數學老師想知道這個序列排序後,其中最長的等差子序列的長度是多長,聰明的你能幫小明解決這個問題嗎?
02Codancer上樓
codancer來到了一棟大樓前,現在他要上樓。
如果codancer從第x層走樓梯到第y層(y>x),那麼他所花費的時間是a[x]+a[x+1]+…+a[y];
如果他從x層坐電梯到第y層,那麼他所花費的時間是c+(b[x]+b[x+1]+…+b[y]),因為他等電梯的時間為c。
現在codancer想知道從第1層到第n層需要最少需要多長時間?
01變換的秘鑰
難度:中等
Tom最開始有一個密鑰s1,s1是長度為n的由小寫字母組成的字元串。Jerry也有一個長度為n的由小寫字母組成的密鑰s2。現在有m組關系,每組關系由兩個數字[u,v]構成(1<=u,v<=26),表示26個字母表中的第u個小寫字母可以直接轉換為第v個小寫字母。假設u=1,v=2,那麼說明字母'a'可以直接轉換為字母'b'。現在Tom對於s1的每個字母使用無數次轉換,請判斷s1能否轉換為s2?
01最大邊權和
難度:簡單
現在有n個點(1<=n<=1000),每個點都有一個值稱為點權ai(ai為偶數,1<=ai<=1000),現在可以將任意兩個點相連,連起來以後這條邊也有一個值稱為邊權,這個邊的邊權為這兩個點的點權之和的一半。現在需要你添加n-1條邊,問將這n個點連通以後(連通是指任意兩個點都能互相到達)的最大的邊權和是多少?
02錢庄
難度:中等
錢庄每天能夠收到很多散錢,第i個散錢的值2 wi。為了便於管理,錢庄每天都會向中央銀行申請兌換錢幣,假設錢庄有一些散錢使得2 k1+2 k2+...+2 km=2^x(x為非負整數),那麼就可以將這些散錢兌換成一個大錢幣,問在錢庄收到的這些散錢最終最少能變成幾個錢幣?
01codancer的旅行
難度:困難
期末考試終於結束啦,Codancer開始了他的旅行,現在整個地圖上有n個城市,這些城市之間有n-1條道路相連,每條道路都有一個距離,並且保證整個圖是連通的,即這個地圖可以看作是一棵樹,現在假設Codancer要從城市A到城市B,那麼他的路費就是從A-B的路徑上邊權最大的邊的權值wmaxx元。現在Codancer有k元,他想知道他能選擇那些(A,B)並且A<B使得codancer能夠到達?
HashMap是一個用於存儲Key-Value鍵值對的集合,每一個鍵值對也叫做Entry。這些個鍵值對(Entry)分散存儲在一個數組當中,這個數組就是HashMap的主幹。
01全奇數組
難度:中等
codancer現在有n個正整數a[1],a[2]…a[n],Tom告訴codancer他可以進行下列操作,選擇某個偶數x,把這n個數中全部等於x的數字除2,Tom想知道把這n個數字全部變成奇數最少需要幾次這樣的操作?
以上十道演算法題你都能搞定嘛?備戰大廠每日刷一道演算法題來提升自己,堅持堅持再堅持,必然會有收獲。為大家整理一份781頁的高分寶典,知識較為全面,可分享給想要學習提升自己的朋友。
領取方式:私信【面試寶典】或點擊右方鏈接: https://shimo.im/docs/QVy8HrQgPYkx9Ddg/ 即可免費領取,喜歡本文不妨關注+轉發支持一下~~
E. 每天一道演算法題,會變聰明嗎
「刀不磨要生銹,人不學要落後」。人的腦子越用越靈活,所以你每天一道演算法題,肯定會越來越聰明的。
F. 急急急,正在做作業,演算法設計題是要怎樣做啊,寫個C語言還是只寫個中文步驟啊,或者都要啊
演算法設計題只需要寫出相應的數據結構和用文字描述的步驟。
如果你高興,把步驟用偽代碼描述更好。
對於這類題目,程序是絕對不需要的,千萬不要寫程序:即費時間,又沒人看。
G. 只會做選擇和判斷題的學生其他的都不會 怎麼辦
只會做選擇題和判斷題的學生說明知識點掌握得不夠透徹,只停留在較為淺顯的層面,在給出提示的情況下能夠解答題目,但在沒有任何提示的情況下腦中沒有任何思路。
這樣還需要回去繼續看書,並且嘗試把例題在不看答案的前提下獨立做一遍,然後看看自己哪裡理解不對,逐步培養自己獨立思考的能力。
H. 小孩上一年級只會數手指頭算題,也都能算對,不用手指就不會算,如何讓小孩學會口算怎麼擺脫數手指頭
其實你可以買一些木棒 然後來教他算題 讓他發現除了數手指還有其他的演算法 等這個問題解決了應該就會好很多
I. 數據結構,只會做選擇填空題,演算法編寫題不會寫怎麼辦,誰有方法讓我三個月內學會寫演算法題
大哥,你這是在開玩笑吧,計算機領域中三大難學科之一,哪有那麼容易學會,演算法最好是經常敲代碼,多翻書,估計3個月內最多能掌握鏈表,棧,隊列和串,個人感覺圖,樹,遞歸這三個數據結構要有逆天的大腦和邏輯思維才寫得出來
J. 前端演算法入門:刷演算法題常用的 JS 基礎掃盲
此篇屬於前端演算法入門系列的第一篇,主要介紹常用的 數組方法 、 字元串方法 、 遍歷方法 、 高階函數 、 正則表達式 以及相關 數學知識 。
在尾部追加,類似於壓棧,原數組會變。
在尾部彈出,類似於出棧,原數組會變。數組的 push & pop 可以模擬常見數據結構之一:棧。
在頭部壓入數據,類似於入隊,原數組會變。
在頭部彈出數據,原數組會變。數組的 push (入隊) & shift (出隊) 可以模擬常見數據結構之一:隊列。
concat 會在當前數組尾部拼接傳入的數組,然後返回一個新數組,原數組不變。
在數組中尋找該值,找到則返回其下標,找不到則返回 -1 。
在數組中尋找該值,找到則返回 true ,找不到則返回 false 。
將數組轉化成字元串,並返回該字元串,不傳值則默認逗號隔開,原數組不變。
翻轉原數組,並返回已完成翻轉的數組,原數組改變。
從 start 開始截取到 end ,但是不包括 end
可參考 MDN:Sort [5]
將數組轉化成字元串,並返回該字元串,逗號隔開,原數組不變。
返回指定索引位置處的字元。類似於數組用中括弧獲取相應下標位置的數據。
類似數組的concat(),用來返回一個合並拼接兩個或兩個以上字元串。原字元串不變。
indexOf ,返回一個字元在字元串中首次出現的位置, lastIndexOf 返回一個字元在字元串中最後一次出現的位置。
提取字元串的片斷,並把提取的字元串作為新的字元串返回出來。原字元串不變。
使用指定的分隔符將一個字元串拆分為多個子字元串數組並返回,原字元串不變。
match() 方法可在字元串內檢索指定的值,或找到一個或多個正則表達式的匹配,並返回一個包含該搜索結果的數組。
注意事項 :如果 match 方法沒有找到匹配,將返回 null 。如果找到匹配,則 match 方法會把匹配到以數組形式返回,如果正則規則未設置全局修飾符 g ,則 match 方法返回的數組有兩個特性: input 和 index 。 input 屬性包含整個被搜索的字元串。 index 屬性包含了在整個被搜索字元串中匹配的子字元串的位置。
replace 接收兩個參數,參數一是需要替換掉的字元或者一個正則的匹配規則,參數二,需要替換進去的字元,仔實際的原理當中,參數二,你可以換成一個回調函數。
在目標字元串中搜索與正則規則相匹配的字元,搜索到,則返回第一個匹配項在目標字元串當中的位置,沒有搜索到則返回一個 -1 。
toLowerCase 把字母轉換成小寫, toUpperCase() 則是把字母轉換成大寫。
includes 、 startsWith 、 endsWith , es6 的新增方法, includes 用來檢測目標字元串對象是否包含某個字元,返回一個布爾值, startsWith 用來檢測當前字元是否是目標字元串的起始部分,相對的 endwith 是用來檢測是否是目標字元串的結尾部分。
返回一個新的字元串對象,新字元串等於重復了指定次數的原始字元串。接收一個參數,就是指定重復的次數。原字元串不變。
最常用的 for 循環,經常用的數組遍歷,也可以遍歷字元串。
while 、 do while 主要的功能是,當滿足 while 後邊所跟的條件時,來執行相關業務。這兩個的區別是, while 會先判斷是否滿足條件,然後再去執行花括弧裡面的任務,而 do while 則是先執行一次花括弧中的任務,再去執行 while 條件,判斷下次還是否再去執行 do 裡面的操作。也就是說 do while 至少會執行一次操作 .
拷貝一份遍歷原數組。
for…of 是 ES6 新增的方法,但是 for…of 不能去遍歷普通的對象,** for…of 的好處是可以使用 break 跳出循環。**
面試官:說一下 for...in 和 for...of 區別?
返回一個布爾值 。當我們需要判定數組中的元素是否滿足某些條件時,可以使用 every / some 。這兩個的區別是, every 會去判斷判斷數組中的每一項,而 some 則是當某一項滿足條件時返回。
rece 從左到右將數組元素做「疊加」處理,返回一個值。 receRight 從右到左。
Object.keys 方法的參數是一個對象,返回一個數組。該數組的成員都是該對象自身的(而不是繼承的)所有屬性名,且只返回可枚舉的屬性。
Object.getOwnPropertyNames 方法與 Object.keys 類似,也是接受一個對象作為參數,返回一個數組,包含了該對象自身的所有屬性名。但它能返回不可枚舉的屬性。
這里羅列一些我在刷演算法題中遇到的正則表達式,如果有時間可認真學一下 正則表達式不要背 [7] 。
持續更新,敬請期待……
若一個正整數無法被除了 1 和它自身之外的任何自然數整除,則稱該數為質數(或素數),否則稱該正整數為合數。