122 lines
12 KiB
HTML
122 lines
12 KiB
HTML
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="X-UA-Compatible" content="IE=edge"><title> leetcode-1103 · MarkDown</title><meta name="description" content="leetcode-1103 - Ching"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="short icon" href="/favicon.png"><link rel="stylesheet" href="/css/apollo.css"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,600" type="text/css"><style><!-- hexo-inject:begin --><!-- hexo-inject:end -->mjx-container[jax="SVG"] {
|
|
direction: ltr;
|
|
}
|
|
|
|
mjx-container[jax="SVG"] > svg {
|
|
overflow: visible;
|
|
}
|
|
|
|
mjx-container[jax="SVG"] > svg a {
|
|
fill: blue;
|
|
stroke: blue;
|
|
}
|
|
|
|
mjx-container[jax="SVG"][display="true"] {
|
|
display: block;
|
|
text-align: center;
|
|
margin: 1em 0;
|
|
}
|
|
|
|
mjx-container[jax="SVG"][justify="left"] {
|
|
text-align: left;
|
|
}
|
|
|
|
mjx-container[jax="SVG"][justify="right"] {
|
|
text-align: right;
|
|
}
|
|
|
|
g[data-mml-node="merror"] > g {
|
|
fill: red;
|
|
stroke: red;
|
|
}
|
|
|
|
g[data-mml-node="merror"] > rect[data-background] {
|
|
fill: yellow;
|
|
stroke: none;
|
|
}
|
|
|
|
g[data-mml-node="mtable"] > line[data-line] {
|
|
stroke-width: 70px;
|
|
fill: none;
|
|
}
|
|
|
|
g[data-mml-node="mtable"] > rect[data-frame] {
|
|
stroke-width: 70px;
|
|
fill: none;
|
|
}
|
|
|
|
g[data-mml-node="mtable"] > .mjx-dashed {
|
|
stroke-dasharray: 140;
|
|
}
|
|
|
|
g[data-mml-node="mtable"] > .mjx-dotted {
|
|
stroke-linecap: round;
|
|
stroke-dasharray: 0,140;
|
|
}
|
|
|
|
g[data-mml-node="mtable"] > svg {
|
|
overflow: visible;
|
|
}
|
|
|
|
[jax="SVG"] mjx-tool {
|
|
display: inline-block;
|
|
position: relative;
|
|
width: 0;
|
|
height: 0;
|
|
}
|
|
|
|
[jax="SVG"] mjx-tool > mjx-tip {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
}
|
|
|
|
mjx-tool > mjx-tip {
|
|
display: inline-block;
|
|
padding: .2em;
|
|
border: 1px solid #888;
|
|
font-size: 70%;
|
|
background-color: #F8F8F8;
|
|
color: black;
|
|
box-shadow: 2px 2px 5px #AAAAAA;
|
|
}
|
|
|
|
g[data-mml-node="maction"][data-toggle] {
|
|
cursor: pointer;
|
|
}
|
|
|
|
mjx-status {
|
|
display: block;
|
|
position: fixed;
|
|
left: 1em;
|
|
bottom: 1em;
|
|
min-width: 25%;
|
|
padding: .2em .4em;
|
|
border: 1px solid #888;
|
|
font-size: 90%;
|
|
background-color: #F8F8F8;
|
|
color: black;
|
|
}
|
|
|
|
foreignObject[data-mjx-xml] {
|
|
font-family: initial;
|
|
line-height: normal;
|
|
overflow: visible;
|
|
}
|
|
|
|
.MathJax path {
|
|
stroke-width: 3;
|
|
}
|
|
|
|
mjx-container {
|
|
overflow: auto hidden;
|
|
}
|
|
|
|
mjx-container + br {
|
|
display: none;
|
|
}
|
|
</style><!-- hexo-inject:begin --><!-- hexo-inject:end --></head><body><header><a href="/" class="logo-link"><img src="/logo.png"></a><ul class="nav nav-list"><li class="nav-list-item"><a href="/" target="_self" class="nav-list-link">ALL</a></li><li class="nav-list-item"><a href="/categories/leetcode/" target="_self" class="nav-list-link">LEETCODE</a></li><li class="nav-list-item"><a href="https://bearmiebear.blogspot.com" target="_blank" class="nav-list-link">BEAR</a></li><li class="nav-list-item"><a href="/atom.xml" target="_self" class="nav-list-link">RSS</a></li></ul></header><section class="container"><div class="post"><article class="post-block"><h1 class="post-title">leetcode-1103</h1><div class="post-meta"><div class="post-time">2020年4月1日</div></div><div class="post-content"><h3 id="1103-__u5206_u7CD6_u679C_II"><a href="#1103-__u5206_u7CD6_u679C_II" class="headerlink" title="1103. 分糖果 II"></a>1103. 分糖果 II</h3><p><a href="https://leetcode-cn.com/problems/distribute-candies-to-people/" target="_blank" rel="noopener">题目</a></p>
|
|
<!-- hexo-inject:begin --><!-- hexo-inject:end --><a id="more"></a>
|
|
<p>小学奥数题。主要思路就是等差数列求和 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -1.625ex" xmlns="http://www.w3.org/2000/svg" width="20.379ex" height="4.656ex" role="img" focusable="false" viewbox="0 -1340 9007.3 2058.1" xmlns:xlink="http://www.w3.org/1999/xlink"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><g data-mml-node="math"><g data-mml-node="mfrac"><g data-mml-node="mrow" transform="translate(220, 590) scale(0.707)"><g data-mml-node="mpadded"><g data-mml-node="mrow"/></g><g data-mml-node="mstyle" transform="scale(1.414)"><g data-mml-node="TeXAtom" data-mjx-texclass="ORD"><g data-mml-node="mo"><use xlink:href="#MJX-TEX-N-28"/></g><g data-mml-node="mo" transform="translate(389, 0)"><text data-variant="normal" transform="matrix(1 0 0 -1 0 0)" font-size="884px" font-family="serif">首</text><text data-variant="normal" transform="translate(900, 0) matrix(1 0 0 -1 0 0)" font-size="884px" font-family="serif">项</text></g><g data-mml-node="mo" transform="translate(2466.8, 0)"><use xlink:href="#MJX-TEX-N-2B"/></g><g data-mml-node="mo" transform="translate(3522.6, 0)"><text data-variant="normal" transform="matrix(1 0 0 -1 0 0)" font-size="884px" font-family="serif">末</text><text data-variant="normal" transform="translate(900, 0) matrix(1 0 0 -1 0 0)" font-size="884px" font-family="serif">项</text></g><g data-mml-node="mo" transform="translate(5322.6, 0)"><use xlink:href="#MJX-TEX-N-29"/></g><g data-mml-node="mo" transform="translate(5711.6, 0)"><use xlink:href="#MJX-TEX-N-D7"/></g><g data-mml-node="mo" transform="translate(6767.3, 0)"><text data-variant="normal" transform="matrix(1 0 0 -1 0 0)" font-size="884px" font-family="serif">项</text><text data-variant="normal" transform="translate(900, 0) matrix(1 0 0 -1 0 0)" font-size="884px" font-family="serif">数</text></g></g></g></g><g data-mml-node="mrow" transform="translate(4253.7, -506) scale(0.707)"><g data-mml-node="mpadded"><g data-mml-node="mrow"/></g><g data-mml-node="mstyle" transform="scale(1.414)"><g data-mml-node="TeXAtom" data-mjx-texclass="ORD"><g data-mml-node="mn"><use xlink:href="#MJX-TEX-N-32"/></g></g></g></g><rect width="8767.3" height="60" x="120" y="220"/></g></g></g></svg></mjx-container> 。可以用公式把每一个位置获得的总糖果数表示出来。我的方法稍微蠢了点,算了每一轮的总糖果数,其实可以直接求总共发了多少次糖果,除以每轮的人数就可以得出发了多少轮。</p>
|
|
<figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br></pre></td><td class="code"><pre><span class="line"><span class="class"><span class="keyword">class</span> <span class="title">Solution</span>:</span></span><br><span class="line"> <span class="function"><span class="keyword">def</span> <span class="title">distributeCandies</span><span class="params">(self, candies: int, num_people: int)</span>:</span></span><br><span class="line"> total = <span class="number">0</span></span><br><span class="line"> i = <span class="number">0</span></span><br><span class="line"> <span class="comment"># import ipdb; ipdb.set_trace()</span></span><br><span class="line"> <span class="keyword">while</span> total <= candies:</span><br><span class="line"> t = (num_people*i)*num_people + int((<span class="number">1</span>+num_people)*num_people/<span class="number">2</span>)</span><br><span class="line"> <span class="keyword">if</span> total + t <= candies:</span><br><span class="line"> total += t</span><br><span class="line"> i += <span class="number">1</span></span><br><span class="line"> <span class="keyword">else</span>:</span><br><span class="line"> <span class="keyword">break</span></span><br><span class="line"> remaining = candies - total</span><br><span class="line"> print(total, remaining, i)</span><br><span class="line"> l = []</span><br><span class="line"> <span class="keyword">for</span> n <span class="keyword">in</span> range(<span class="number">1</span>, num_people+<span class="number">1</span>):</span><br><span class="line"> <span class="keyword">if</span> <span class="keyword">not</span> total:</span><br><span class="line"> current_candy = n</span><br><span class="line"> <span class="keyword">else</span>:</span><br><span class="line"> current_candy = n+i*num_people</span><br><span class="line"></span><br><span class="line"> n_count = int((<span class="number">0</span>+(i<span class="number">-1</span>))*(i)/<span class="number">2</span>)</span><br><span class="line"> print(current_candy, n_count)</span><br><span class="line"> <span class="keyword">if</span> remaining >= current_candy:</span><br><span class="line"> l.append(n_count*num_people + n*i + current_candy)</span><br><span class="line"> remaining -= current_candy</span><br><span class="line"> <span class="keyword">else</span>:</span><br><span class="line"> l.append(n_count*num_people + n*i + remaining)</span><br><span class="line"> remaining = <span class="number">0</span></span><br><span class="line"> <span class="keyword">return</span> l</span><br><span class="line"><span class="comment"># 28 ms 13.7 MB,</span></span><br></pre></td></tr></table></figure>
|
|
<svg style="display: none" id="MJX-SVG-global-cache"><defs><path id="MJX-TEX-N-28" d="M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"/><path id="MJX-TEX-N-2B" d="M56 237T56 250T70 270H369V420L370 570Q380 583 389 583Q402 583 409 568V270H707Q722 262 722 250T707 230H409V-68Q401 -82 391 -82H389H387Q375 -82 369 -68V230H70Q56 237 56 250Z"/><path id="MJX-TEX-N-29" d="M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"/><path id="MJX-TEX-N-D7" d="M630 29Q630 9 609 9Q604 9 587 25T493 118L389 222L284 117Q178 13 175 11Q171 9 168 9Q160 9 154 15T147 29Q147 36 161 51T255 146L359 250L255 354Q174 435 161 449T147 471Q147 480 153 485T168 490Q173 490 175 489Q178 487 284 383L389 278L493 382Q570 459 587 475T609 491Q630 491 630 471Q630 464 620 453T522 355L418 250L522 145Q606 61 618 48T630 29Z"/><path id="MJX-TEX-N-32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"/></defs></svg></div></article></div></section><footer><div class="paginator"><a href="/2020/04/01/leetcode-compress-string-lcci/" class="prev">PRVE</a><a href="/2020/04/01/leetcode-1160/" class="next">NEXT</a></div><div class="copyright"><p>© 2016 - 2020 <a href="http://blog.tunpok.com">Ching</a>, unless otherwise noted.</p></div></footer><script src="https://cdn.bootcss.com/mathjax/2.5.3/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script><!-- hexo-inject:begin --><!-- hexo-inject:end --></body></html> |