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

資訊專欄INFORMATION COLUMN

每日一道算法題 - KaprekarsConstant(hard-2)

OnlyLing / 2483人閱讀

摘要:更多的小算法練習(xí),可以查看我的文章。規(guī)則使用語言,使用函數(shù)讀取,它將是一個(gè)字符串,指的是棋盤上點(diǎn)的位置。使用遞歸函數(shù)去解決,需要清楚判斷的臨界點(diǎn),比如和時(shí),只有一種選擇。

雖然都是很簡(jiǎn)單的算法,每個(gè)都只需5分鐘左右,但寫起來總會(huì)遇到不同的小問題,希望大家能跟我一起每天進(jìn)步一點(diǎn)點(diǎn)。
更多的小算法練習(xí),可以查看我的文章。

規(guī)則

Using the JavaScript language, have the function ChessboardTraveling(str) read str which will be a string consisting of the location of a space on a standard 8x8 chess board with no pieces on the board along with another space on the chess board. The structure of str will be the following: "(x y)(a b)" where (x y) represents the position you are currently on with x and y ranging from 1 to 8 and (a b) represents some other space on the chess board with a and b also ranging from 1 to 8 where a > x and b > y. Your program should determine how many ways there are of traveling from (x y) on the board to (a b) moving only up and to the right. For example: if str is (1 1)(2 2) then your program should output 2 because there are only two possible ways to travel from space (1 1) on a chessboard to space (2 2) while making only moves up and to the right.

使用JavaScript語言,使用ChessboardTraveling(str)函數(shù)讀取str ,它將是一個(gè)字符串,指的是8x8棋盤上點(diǎn)的位置。str的結(jié)構(gòu)如下:“(x y)(a b)”,其中(x y)代表你當(dāng)前所處的位置x和y的范圍是1到8,而(a b)代表棋盤上的其他點(diǎn)的位置,a和b也在1到8的范圍內(nèi),其中a> x和b> y。您的程序應(yīng)該確定從( xy)在棋盤上移動(dòng)到(a b)并且移動(dòng)方式只能是向上和向右移動(dòng)的情況下,一共有多少條路徑。
例如:如果str是(1 1)(2 2)然后你的程序應(yīng)該輸出2,因?yàn)橹挥袃煞N可能的方式從棋盤上的(1 1)點(diǎn)移動(dòng)到棋盤上的(2 2)點(diǎn)。

function ChessboardTraveling(str) { 

  // code goes here  
  return str;    
} 
測(cè)試用例
Input:"(1 1)(3 3)"
Output:6

Input:"(1 1)(2 2)"
Output:2

Input:"(2 2)(4 3)"
Output:3
my code
function ChessboardTraveling(str) { 
  var strArr = str.match(/([0-9]+s+[0-9]+)/g)
  var minArr = strArr[0].split(" ")
  var maxArr = strArr[1].split(" ")
  var xDiff = maxArr[0] - minArr[0]
  var yDiff = maxArr[1] - minArr[1]

  return Steps(xDiff, yDiff);    
}

function Steps(x, y) {
  if (x < 0 || y < 0)
    return 0;
  if (x == 0 && y == 1)
    return 1;
  if (x == 1 && y == 0)
    return 1;

  return Steps(x - 1, y) + Steps(x, y - 1)
}

console.log(ChessboardTraveling("(1 1)(3 3)"));
other code

暫時(shí)沒找到其他合適的解決方式,如果你們有自己的解決方法,請(qǐng)留言~

思路

個(gè)人思路:

8*8在本題中只做了數(shù)值的大小限制,無其他作用

把最小點(diǎn)(如(2 2))作為方格的最左下角,最大點(diǎn)(如 (4 3))作為方格的右上角,構(gòu)成一個(gè)3*2的方格,實(shí)質(zhì)上就是求從方格最左下方到方格最右上方有多少條路徑。

使用遞歸函數(shù)去解決,需要清楚判斷的臨界點(diǎn),比如(x === 0 && y === 1)(x === 1 && y === 0)時(shí),只有一種選擇。

另一種思路:
使用組合計(jì)算
(1 1)和(3,3),需要往上走2步,往右走2步,一共要走4步,C(2,4)= 6
(2 2)和(4,3),需要往上走1步,往右走2步,一共要走3步,C(1,3)= 3

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/96090.html

相關(guān)文章

  • 每日一道算法 - LetterChanges(easy-4)

    摘要:更多的小算法練習(xí),可以查看我的文章。規(guī)則使用語言,使用函數(shù)獲取傳遞的參數(shù)并使用以下算法對(duì)其進(jìn)行修改。將字符串中的每個(gè)字母替換為字母表后面的字母即變?yōu)椋優(yōu)椤H缓髮⑦@個(gè)新字符串,,,,中的每個(gè)元音大寫,并最終返回此修改后的字符串。 雖然都是很簡(jiǎn)單的算法,每個(gè)都只需5分鐘左右,但寫起來總會(huì)遇到不同的小問題,希望大家能跟我一起每天進(jìn)步一點(diǎn)點(diǎn)。更多的小算法練習(xí),可以查看我的文章。 規(guī)則 Usi...

    mo0n1andin 評(píng)論0 收藏0
  • 每日一道算法 - 反轉(zhuǎn)字符串(easy-3)

    摘要:規(guī)則使用語言,讓函數(shù)獲取傳遞的參數(shù),并以相反的順序返回字符串。測(cè)試用例思路方法通過把字符串轉(zhuǎn)換成數(shù)組,并使用數(shù)組的反轉(zhuǎn)數(shù)組,然后使用重新拼接成字符串方法向后循環(huán)字符串或字符數(shù)組以生成新字符串 雖然都是很簡(jiǎn)單的算法,每個(gè)都只需5分鐘左右,但寫起來總會(huì)遇到不同的小問題,希望大家能跟我一起每天進(jìn)步一點(diǎn)點(diǎn)。更多的小算法練習(xí),可以查看我的文章。 規(guī)則 Using the JavaScript l...

    xfee 評(píng)論0 收藏0
  • 每日一道算法 - LongestWord(easy-1)

    摘要:規(guī)則使用語言,讓函數(shù)獲取傳遞的參數(shù)并返回字符串中的最大單詞。忽略字符串中標(biāo)點(diǎn)符號(hào)并假設(shè)不會(huì)為空。測(cè)試用例思路通過過濾字符串,并把字符串根據(jù)空格符轉(zhuǎn)換成字符串?dāng)?shù)組通過循環(huán)把獲取字符串?dāng)?shù)組中的長(zhǎng)度最長(zhǎng)的字符串 雖然都是很簡(jiǎn)單的算法,每個(gè)都只需5分鐘左右,但寫起來總會(huì)遇到不同的小問題,希望大家能跟我一起每天進(jìn)步一點(diǎn)點(diǎn)。更多的小算法練習(xí),可以查看我的文章。 規(guī)則 Using the JavaS...

    plokmju88 評(píng)論0 收藏0
  • 每日一道算法

    摘要:遇到的坑剛拿到這道題就直接做了這樣的判斷,可是萬一是這個(gè)判斷就是錯(cuò)誤的了。思路二上述算法遍歷了兩次鏈表,還額外申請(qǐng)了一個(gè)數(shù)組空間,效率不高,不如直接就地反轉(zhuǎn)鏈表,更改每個(gè)節(jié)點(diǎn)自身的指針。 2018.10.14 來源:劍指offer 題目:反轉(zhuǎn)鏈表 輸入一個(gè)鏈表,反轉(zhuǎn)鏈表后,輸出新鏈表的表頭。思路一:把所有鏈表內(nèi)容都輸入到一個(gè)數(shù)組,再次遍歷鏈表,得到數(shù)組反轉(zhuǎn)后的值,最后輸出原來的head...

    The question 評(píng)論0 收藏0
  • 每日一道算法--二維數(shù)組中的查找--python

    摘要:題目描述代碼思路思路一按行執(zhí)行二分查找,只要該行的第一個(gè)元素小于目標(biāo),就對(duì)該行二分查找。思路二從數(shù)組的左下角開始查找,如果當(dāng)前值小于目標(biāo),就向右,即如果當(dāng)前值大于目標(biāo),就向上,即。【題目描述】 showImg(https://user-gold-cdn.xitu.io/2019/5/22/16addf094e0320ca); 【代碼思路】 思路一:按行執(zhí)行二分查找,只要該行的第一個(gè)元素小于目...

    番茄西紅柿 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<