亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

每日一題:一 石頭 ----- 這里注重算法和效率

sorra / 2851人閱讀

摘要:比較無(wú)聊的一天,小明決定列舉了一大堆石頭。他先數(shù)了數(shù)石頭,發(fā)現(xiàn)堆里有幾塊石頭,然后到商店去買(mǎi)標(biāo)簽。每一個(gè)標(biāo)簽都是從到的數(shù)字,每一個(gè)石頭都應(yīng)該分配一個(gè)唯一的數(shù)字,從到。所以我們要改進(jìn)一下算法。

比較無(wú)聊的一天,小明決定列舉了一大堆石頭。他先數(shù)了數(shù)石頭,發(fā)現(xiàn)堆里有幾塊石頭,然后到商店去買(mǎi)標(biāo)簽。每一個(gè)標(biāo)簽都是從0到9的數(shù)字,每一個(gè)石頭都應(yīng)該分配一個(gè)唯一的數(shù)字,從1到N。如果每個(gè)標(biāo)簽的成本是1美元,小明會(huì)花多少錢(qián)在這個(gè)項(xiàng)目上?

function rocks(int $n): int {
  return ;
}

其中:

$n為石頭數(shù),且$n為大于1的正整數(shù)
返回為需要的成本
例子:

小明發(fā)現(xiàn)了13塊石頭:
則石頭上的數(shù)字為:
1,2,3,4,5,6,7,8,9,10,11,12,13
所需要的標(biāo)簽為:
1,2,3,4,5,6,7,8,9,1,0,1,1,1,2,1,3
所需要的成本為:
17

這道題對(duì)于我們來(lái)講,很多人的固定思路就是以下這種

function rocks(a) {
  var str = "";
  for(var i=1; i<=a; i++){
    str += i;
  }
  return str.length;
}
rocks(13);

通過(guò)求長(zhǎng)度的方式來(lái)解決這類問(wèn)題,但是如果說(shuō)數(shù)據(jù)量一大,就會(huì)造成溢出。所以我們要改進(jìn)一下算法。
以下是我對(duì)這道題的理解:
通過(guò)題意得知,如果是1位數(shù)的,就是1張標(biāo)簽,如果是兩位數(shù)的就是兩個(gè)標(biāo)簽,如果是三位數(shù)的就是三個(gè)標(biāo)簽。
我們只需要循環(huán)他所傳遞的長(zhǎng)度的次數(shù)就可以了,通過(guò),等差數(shù)列的方式,求出次數(shù),
比如:
1位數(shù): 10-1 * 1
2位數(shù): 1010 - 101 * 2
3位數(shù): 101010 - 10 10 2
以下是我的代碼:

function rocks(int $n): int {
  // 得到長(zhǎng)度.
  $length = strlen($n);
  $count = 0;
  if($length > 1){
    // 循環(huán)長(zhǎng)度-1次. 這里求的是位數(shù)
    for($i=1;$i<$length;++$i){
      $count += $i * (pow(10,$i)-pow(10,$i-1));
    }
    // 如果到了 最后一次即到了  10的i次方   直接用n來(lái)減去即可
    $count += ($n - pow(10,$i-1) + 1)*$i;
    return $count;
  }else{
    return $n;
  }
}

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/23192.html

相關(guān)文章

  • 每日: 石頭 ----- 這里注重算法效率

    摘要:比較無(wú)聊的一天,小明決定列舉了一大堆石頭。他先數(shù)了數(shù)石頭,發(fā)現(xiàn)堆里有幾塊石頭,然后到商店去買(mǎi)標(biāo)簽。每一個(gè)標(biāo)簽都是從到的數(shù)字,每一個(gè)石頭都應(yīng)該分配一個(gè)唯一的數(shù)字,從到。所以我們要改進(jìn)一下算法。 比較無(wú)聊的一天,小明決定列舉了一大堆石頭。他先數(shù)了數(shù)石頭,發(fā)現(xiàn)堆里有幾塊石頭,然后到商店去買(mǎi)標(biāo)簽。每一個(gè)標(biāo)簽都是從0到9的數(shù)字,每一個(gè)石頭都應(yīng)該分配一個(gè)唯一的數(shù)字,從1到N。如果每個(gè)標(biāo)簽的成本是1...

    tigerZH 評(píng)論0 收藏0
  • 每日: 石頭 ----- 這里注重算法效率

    摘要:比較無(wú)聊的一天,小明決定列舉了一大堆石頭。他先數(shù)了數(shù)石頭,發(fā)現(xiàn)堆里有幾塊石頭,然后到商店去買(mǎi)標(biāo)簽。每一個(gè)標(biāo)簽都是從到的數(shù)字,每一個(gè)石頭都應(yīng)該分配一個(gè)唯一的數(shù)字,從到。所以我們要改進(jìn)一下算法。 比較無(wú)聊的一天,小明決定列舉了一大堆石頭。他先數(shù)了數(shù)石頭,發(fā)現(xiàn)堆里有幾塊石頭,然后到商店去買(mǎi)標(biāo)簽。每一個(gè)標(biāo)簽都是從0到9的數(shù)字,每一個(gè)石頭都應(yīng)該分配一個(gè)唯一的數(shù)字,從1到N。如果每個(gè)標(biāo)簽的成本是1...

    wind3110991 評(píng)論0 收藏0
  • 每日: 石頭 ----- 這里注重算法效率

    摘要:比較無(wú)聊的一天,小明決定列舉了一大堆石頭。他先數(shù)了數(shù)石頭,發(fā)現(xiàn)堆里有幾塊石頭,然后到商店去買(mǎi)標(biāo)簽。每一個(gè)標(biāo)簽都是從到的數(shù)字,每一個(gè)石頭都應(yīng)該分配一個(gè)唯一的數(shù)字,從到。所以我們要改進(jìn)一下算法。 比較無(wú)聊的一天,小明決定列舉了一大堆石頭。他先數(shù)了數(shù)石頭,發(fā)現(xiàn)堆里有幾塊石頭,然后到商店去買(mǎi)標(biāo)簽。每一個(gè)標(biāo)簽都是從0到9的數(shù)字,每一個(gè)石頭都應(yīng)該分配一個(gè)唯一的數(shù)字,從1到N。如果每個(gè)標(biāo)簽的成本是1...

    frolc 評(píng)論0 收藏0
  • JS每日:Vue中的diff算法?

    摘要:,文本節(jié)點(diǎn)的比較,需要修改,則會(huì)調(diào)用。,新節(jié)點(diǎn)沒(méi)有子節(jié)點(diǎn),老節(jié)點(diǎn)有子節(jié)點(diǎn),直接刪除老節(jié)點(diǎn)。所以一句話,的作用主要是為了高效的更新虛擬。 20190125 Vue中的diff算法? 概念: diff算法是一種優(yōu)化手段,將前后兩個(gè)模塊進(jìn)行差異對(duì)比,修補(bǔ)(更新)差異的過(guò)程叫做patch(打補(bǔ)丁) 為什么vue,react這些框架中都會(huì)有diff算法呢? 我們都知道渲染真實(shí)dom的開(kāi)銷(xiāo)是很大的...

    Caicloud 評(píng)論0 收藏0
  • 小李飛刀:做題第九彈!

    摘要:不過(guò)可能還沒(méi)有抓到動(dòng)態(tài)規(guī)劃的真諦,總覺(jué)得哪里需要再校正下思路。這題也是動(dòng)態(tài)規(guī)劃的題目,目標(biāo)總是要分解為子問(wèn)題??偨Y(jié)看算法圖解的時(shí)候,涉及動(dòng)態(tài)規(guī)劃的小結(jié)中有這樣的每種動(dòng)態(tài)規(guī)劃解決方案都涉及網(wǎng)格。 寫(xiě)在前面的話 感覺(jué)做題越多遇到的寫(xiě)法越多,有種躍躍欲試的感覺(jué)~ 認(rèn)真做題 第一題 70. 爬樓梯難度:簡(jiǎn)單假設(shè)你正在爬樓梯。需要 n 階你才能到達(dá)樓頂。每次你可以爬 1 或 2 個(gè)臺(tái)階。你有多少...

    Bamboy 評(píng)論0 收藏0

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

0條評(píng)論

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