国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

入坑codewars

sherlock221 / 1819人閱讀

摘要:,黑色的主題風格,很符合。時間復雜度雖然成功,但我明顯感覺代碼寫得不是很優雅。這個是沒錯的,但缺乏了宏觀的視角,會變得片面。但是不重要,關鍵是這個思想要學習,可以應用到其他地方。求和,大于就返回偶數的位置,否則返回奇數的位置。

前幾天做LeetCode上的大數乘法,代碼沒錯,可就是提交不成功,顯示SyntaxError: Unexpected token var
我把所有代碼都注釋掉,只留下return 1,依然報同樣的錯誤。。。感覺LeetCode對JSer不是特別友好
剛剛在node社區看到有人推薦codewars,立馬去體驗一番。注冊要寫個代碼測試一下身份,這個細節有意思(雖然代碼很簡單)。
codewars,黑色的主題風格,很符合coder。而且可用語言非常廣,連TypeScript都有!!
然后codewars給我推薦了一題=>codewars-iqTest

這題雖然很簡單,但是很有意思,對我的啟發挺大的,讓我發現了自己的一些不足。
題目:意思就是要找出數串(不是數組,這是一個坑)中跟其他數不相同的一個數(奇偶方面)

我一開始的寫法是:以第一個數的奇偶性為標準,后面的數跟這個標準一樣,那就返回之前記錄的一個跟這個標準不同的數的下標(如果有的話)。如果跟這個標準不同,那就記錄下標。這樣遍歷完之后就如果還沒有return,那結果就只能是第一個數或者最后一個數。判斷一下seen就知道是頭還是尾了。時間復雜度O(n)

function iqTest(numbers){
  let number = numbers.split(" ")
  let tag = number[0]%2
  let resIndex = ""
  let seen = false
  for(let i = 1, len = number.length; i < len; i++) {
    if(number[i]%2 === tag) {
      if(resIndex !== "") return resIndex+1
      seen = true
    }else {
      resIndex = i
    }
  }
  return seen? resIndex + 1: 1
}

雖然成功AC,但我明顯感覺代碼寫得不是很優雅。在評論區看到有人用兩個數組分別裝奇數偶數,我恍然大悟,瞬間感覺自己宛如zz...我怎么一開始沒想到orz
這一題完全暴露了我的不足,讓我深思。遇到編程題,也許我更多地是在微觀上進行思考,關注執行流程的每個細節,代碼怎么執行。這個是沒錯的,但缺乏了宏觀的視角,會變得片面。正所謂不識廬山真面目,只緣身在此山中,這一題如果宏觀上把奇偶剝離,那什么問題都解決了,簡直不要太簡單!!

function iqTest(numbers){
  let number = numbers.split(" ")
  let odd = [],even = []
  number.forEach((item,index) => {
    item % 2 == 0? even.push(index + 1): odd.push(index + 1)
  })
  return odd.length === 1? odd[0]: even[0]
}

短短幾行代碼,也是一次遍歷,時間復雜度O(n),這才是優雅地寫代碼!(看到社區高票答案有用filter掃兩次,我覺得用forEach一次就夠了)
此外,AC之后還能看大佬們的代碼,按clever排序,看到了一下代碼:


看到這樣的代碼,我真的有點興奮,想法太妙了!雖然包含indexOf,一共遍歷了三遍。但是不重要,關鍵是這個思想要學習,可以應用到其他地方。
首先他用map將每個元素模2,這就像同化一樣,因為只有奇數和偶數,所以先把奇數和偶數都分別同化成一個樣,0或1。求和,大于1就返回偶數的位置,否則返回奇數的位置。
不過我覺得reduce累加的步驟沒有必要,只要把前三個數加起來就知道不同的數的奇偶性,或者可以在第一次遍歷就記錄0或1的數量,省一次遍歷。

喜歡codewars,這里人個個都是人才,說話又好聽

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/108166.html

相關文章

  • CodeWars 上面的奇葩問題和回答(一)

    摘要:其實昨天晚上我看到最逗得一段代碼是這樣的,老外的創造力真是震古爍今啊,題目是寫一個函數查找素數。 這兩天有點迷Codewars , 這上面的好處是獎勵系統,我為了升段位晚上像打游戲升級一樣的在做js習題,想想老外哪怕這簡單網站的任務系統做的可真夠好啊。 先給大家介紹第一道 六段題(一共8kyu,kyu上面還有dan,數字越小越難) 題目: 創造一個函數,返回如下這么個玩意,參數...

    gggggggbong 評論0 收藏0
  • [到codewars打怪獸]串串香

    摘要:問題描述驗證方式題目理解函數處理一個參數,一個字符串組。常量值,可以是任意合法的表達式。到字符串長度的一個整數。可選,用于指定連接每個數組元素的分隔符。分隔符會被轉成字符串類型如果省略的話,默認為一個逗號。 [7 kyu]Substring fun ??2016.02.22 問題描述: showImg(http://ww1.sinaimg.cn/large/006m2mhTgw1f1p...

    2json 評論0 收藏0
  • CodeWars 上面的奇葩問題(二)

    工作之余在codewars上看了一個問題,題目如下 寫一個正則,驗證密碼,保證以下幾點, 0.位數大于六 1.必須包含小寫字母 2.必須包含大寫字母 3.必須包含數字 好吧,我搞了半天沒搞出來,各位看官,你們知道怎么解嗎? 答案我參考了google,使用一條正則表達式是這樣的 function validate(password) ...

    TANKING 評論0 收藏0
  • 刷題——Codewars Js題目(持續更新)

    摘要:發現一個很好的練習做題網站都是自己做過的,先放自己的答案,再放自己覺得不錯的其他回答。 發現一個很好的練習做題網站 Codewars 都是自己做過的,先放自己的答案,再放自己覺得不錯的其他回答。 1. 將首字母放到后面并加上ay pigIt(This is my string)轉換成:pigIt(hisTay siay ymay tringsay) mine function...

    toddmark 評論0 收藏0
  • [到codewar打怪獸]你這小孩看到長輩怎么不打招呼

    摘要:你這小孩看到長輩怎么不打招呼怪獸的屬性怪獸的技能無大木博士的圖鑒把它函數弄好來,讓他可以好好地歡迎客人戰斗記錄儀回放注解訪問對象的屬性。在通過來調用函數調用對象。失誤并不是全局對象。國際戰場的經典錄像不需。 [8 kyu]Broken Greetings 你這小孩看到長輩怎么不打招呼??2016.03.15 怪獸的屬性: showImg(http://ww3.sinaimg.cn/la...

    rainyang 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<