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

資訊專欄INFORMATION COLUMN

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

sorra / 2807人閱讀

摘要:比較無聊的一天,小明決定列舉了一大堆石頭。他先數了數石頭,發現堆里有幾塊石頭,然后到商店去買標簽。每一個標簽都是從到的數字,每一個石頭都應該分配一個唯一的數字,從到。所以我們要改進一下算法。

比較無聊的一天,小明決定列舉了一大堆石頭。他先數了數石頭,發現堆里有幾塊石頭,然后到商店去買標簽。每一個標簽都是從0到9的數字,每一個石頭都應該分配一個唯一的數字,從1到N。如果每個標簽的成本是1美元,小明會花多少錢在這個項目上?

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

其中:

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

小明發現了13塊石頭:
則石頭上的數字為:
1,2,3,4,5,6,7,8,9,10,11,12,13
所需要的標簽為:
1,2,3,4,5,6,7,8,9,1,0,1,1,1,2,1,3
所需要的成本為:
17

這道題對于我們來講,很多人的固定思路就是以下這種

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

通過求長度的方式來解決這類問題,但是如果說數據量一大,就會造成溢出。所以我們要改進一下算法。
以下是我對這道題的理解:
通過題意得知,如果是1位數的,就是1張標簽,如果是兩位數的就是兩個標簽,如果是三位數的就是三個標簽。
我們只需要循環他所傳遞的長度的次數就可以了,通過,等差數列的方式,求出次數,
比如:
1位數: 10-1 * 1
2位數: 1010 - 101 * 2
3位數: 101010 - 10 10 2
以下是我的代碼:

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

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

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

相關文章

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

    摘要:比較無聊的一天,小明決定列舉了一大堆石頭。他先數了數石頭,發現堆里有幾塊石頭,然后到商店去買標簽。每一個標簽都是從到的數字,每一個石頭都應該分配一個唯一的數字,從到。所以我們要改進一下算法。 比較無聊的一天,小明決定列舉了一大堆石頭。他先數了數石頭,發現堆里有幾塊石頭,然后到商店去買標簽。每一個標簽都是從0到9的數字,每一個石頭都應該分配一個唯一的數字,從1到N。如果每個標簽的成本是1...

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

    摘要:比較無聊的一天,小明決定列舉了一大堆石頭。他先數了數石頭,發現堆里有幾塊石頭,然后到商店去買標簽。每一個標簽都是從到的數字,每一個石頭都應該分配一個唯一的數字,從到。所以我們要改進一下算法。 比較無聊的一天,小明決定列舉了一大堆石頭。他先數了數石頭,發現堆里有幾塊石頭,然后到商店去買標簽。每一個標簽都是從0到9的數字,每一個石頭都應該分配一個唯一的數字,從1到N。如果每個標簽的成本是1...

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

    摘要:比較無聊的一天,小明決定列舉了一大堆石頭。他先數了數石頭,發現堆里有幾塊石頭,然后到商店去買標簽。每一個標簽都是從到的數字,每一個石頭都應該分配一個唯一的數字,從到。所以我們要改進一下算法。 比較無聊的一天,小明決定列舉了一大堆石頭。他先數了數石頭,發現堆里有幾塊石頭,然后到商店去買標簽。每一個標簽都是從0到9的數字,每一個石頭都應該分配一個唯一的數字,從1到N。如果每個標簽的成本是1...

    frolc 評論0 收藏0
  • JS每日:Vue中的diff算法?

    摘要:,文本節點的比較,需要修改,則會調用。,新節點沒有子節點,老節點有子節點,直接刪除老節點。所以一句話,的作用主要是為了高效的更新虛擬。 20190125 Vue中的diff算法? 概念: diff算法是一種優化手段,將前后兩個模塊進行差異對比,修補(更新)差異的過程叫做patch(打補丁) 為什么vue,react這些框架中都會有diff算法呢? 我們都知道渲染真實dom的開銷是很大的...

    Caicloud 評論0 收藏0
  • 小李飛刀:做題第九彈!

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

    Bamboy 評論0 收藏0

發表評論

0條評論

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