当前位置:   article > 正文

Golang | Leetcode Golang题解之第233题数字1的个数

Golang | Leetcode Golang题解之第233题数字1的个数

题目:

题解:

  1. func countDigitOne(n int) (ans int) {
  2. // mulk 表示 10^k
  3. // 在下面的代码中,可以发现 k 并没有被直接使用到(都是使用 10^k)
  4. // 但为了让代码看起来更加直观,这里保留了 k
  5. for k, mulk := 0, 1; n >= mulk; k++ {
  6. ans += (n/(mulk*10))*mulk + min(max(n%(mulk*10)-mulk+1, 0), mulk)
  7. mulk *= 10
  8. }
  9. return
  10. }
  11. func min(a, b int) int {
  12. if a < b {
  13. return a
  14. }
  15. return b
  16. }
  17. func max(a, b int) int {
  18. if a > b {
  19. return a
  20. }
  21. return b
  22. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/848139
推荐阅读
相关标签
  

闽ICP备14008679号