昨天子序列的原创审核居然没有通过,无语子

不应该放ppt截图的。

今天的leetcode居然是一个困难题,加油!

上次也做出来啦。

233. 数字 1 的个数

链接: https://leetcode-cn.com/problems/number-of-digit-one/

给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。

示例 1:

输入:n = 13
输出:6

示例 2:

输入:n = 0
输出:0

提示:

思路:

用递推思想,数字范围那么大,肯定是要找规律的。

(1) n < 10 的时候 return 1.

(2)n == 10 return 2

(3)n == 11 return 4

(4)n== 12 -- 19 return 4 + n - 11 --> 4 + 8

(5)n == 20 -- 99 return moddiv(n,10) == quotient,remainder

return     4+ 8 + (quotient-2) + remainder > 0

然后发现了一个这个规律:

99 = 2 * 10

999 = 100 + 10 * 20

9999 = 1000 +  ( 100 + 10 * 20 ) * 10

99999 = 10000 + (1000 + 300 * 10) * 10

那可以怎么说呢?

先判断什么数字范围。 100 以下的单独计算,100以上的走规律。

最大也就 2 * 10 ^9 次方,可以先先写个 10^ 9 -1 的映射字典:

是个没什么意思的题

但是我也想做出来

class Solution:def countDigitOne(self, n: int) -> int:# 0 -99 的映射字典def get_one(n):res = 0quotient,reminder = divmod(n,10)if quotient < 1:if reminder < 1:res = 0else:res = 1elif quotient == 1:if reminder < 1:res = 2 elif reminder == 1:res = 4else:res = 4 + reminder - 1else:res = 4 + 8 + quotient - 2 if reminder > 0:res += 1return res res_dict = {99:20}tmp_value = 20for i in range(3,10):tmp = 10 ** i - 1res_dict[tmp] = 10 ** (i-1) + tmp_value * 10 tmp_value = res_dict[tmp]if n < 100:return get_one(n)# 大于100的判断位数,然后加str_n = str(n)len_num = len(str_n)# 按位数计算# 前面的积累:res = 0while n >= 100:quotient,reminder = divmod(n,10**(len_num-1))if quotient == 1:res += res_dict[10 ** (len_num-1)-1]res += (reminder + 1)else:res += 10**(len_num-1)res += (quotient) * res_dict[10 ** (len_num-1)-1]n = reminderlen_num -= 1res += get_one(n)return res

冉宝的每日一题--8月13日相关推荐

  1. 冉宝的每日一题--8月5日

    今天看女乒天团的直播,她们好有趣啊 802.找到最终的安全状态 在有向图中,以某个节点为起始节点,从该点出发,每一步沿着图中的一条有向边行走.如果到达的节点是终点(即它没有连出的有向边),则停止. 对 ...

  2. 淘宝618每日一猜6月8日答案-明星孙怡最喜欢的显瘦单品?

    淘宝6月8日每日一猜答案是什么?,接下来也会给大家来介绍一下6月8日淘宝大赢家每日一猜的答案. 淘宝每日一猜6月8日答案分享 活动问题:明星孙怡最喜欢的显瘦单品? 活动答案:轻塑鲨鱼裤 今天的题目是和 ...

  3. 淘宝618每日一猜6月6日答案-甄嬛在横店哪里参加的选秀?

    淘宝6月6日每日一猜答案是什么?,接下来也会给大家来介绍一下6月6日淘宝大赢家每日一猜的答案. 淘宝每日一猜6月6日答案分享 活动问题:甄嬛在横店哪里参加的选秀 活动答案:[交泰殿] 还有打开手机淘宝 ...

  4. 第五人格七月三日服务器维护要多久,第五人格微信每日一题7月3日答案是什么_今天有四个人来访过_玩游戏网...

    <第五人格>2021独特时装体验卡礼包 第五人格2021独特时装体验卡礼包怎么获得?礼包中有独特时装体验卡.角色体验卡等奖励,小编这里就分享一下第五人格2021独特时装体验卡礼包领取地址, ...

  5. PMP模拟试题每日5题(5月5日)

    摘要:为帮助即将参加PMP®考试的考生快速熟悉PMP®试题.熟练掌握PMP®相关考点知识,本专栏将每日推出5道PMP®模拟试题(包含试题原题和答案解析),快来进行练习吧! 1.你的敏捷团队与一个开发商 ...

  6. PMP模拟试题每日5题(5月7日)

    摘要:为帮助即将参加PMP®考试的考生快速熟悉PMP®试题.熟练掌握PMP®相关考点知识,本专栏将每日推出5道PMP®模拟试题(包含试题原题和答案解析),快来进行练习吧! 1.产品开发团队采用敏捷开发 ...

  7. PMP模拟试题每日5题(4月28日)

    摘要:为帮助即将参加PMP®考试的考生快速熟悉PMP®试题.熟练掌握PMP®相关考点知识,本专栏将每日推出5道PMP®模拟试题(包含试题原题和答案解析),快来进行练习吧! 1.项目需要委托第三方研发一 ...

  8. PMP模拟试题每日5题(4月22日)

    ​​​​摘要:为帮助即将参加PMP®考试的考生快速熟悉PMP®试题.熟练掌握PMP®相关考点知识,本专栏将每日推出5道PMP®模拟试题(包含试题原题和答案解析),快来进行练习吧! 1.项目技术团队强烈 ...

  9. PMP模拟试题每日5题(5月6日)

    摘要:为帮助即将参加PMP®考试的考生快速熟悉PMP®试题.熟练掌握PMP®相关考点知识,本专栏将每日推出5道PMP®模拟试题(包含试题原题和答案解析),快来进行练习吧! 1.沟通对项目成功非常关键. ...

  10. 【备战秋招】每日一题:4月23日美团春招第三题:题面+题目思路 + C++/python/js/Go/java带注释

    为了更好的阅读体检,为了更好的阅读体检,,可以查看我的算法学习博客第三题-农村大亨 在线评测链接:P1247 题目内容 塔子哥是一个喜欢种田类的游戏的人,他觉得这样的游戏可以让他体验到农民的乐趣,同时 ...

最新文章

  1. hdu 1879 继续畅通工程
  2. java主动抛出400异常_400个线程同时查询数据,抛出一个异常
  3. CNN中,1X1卷积核到底有什么作用呢?
  4. xxl-job 执行结果是空_空指针,段错误,这场面试我栽倒在这里了!
  5. 字符编码·ISO8859
  6. WORD出错:布局也会超出内容区
  7. 勒索病毒的原理和防范机制研究
  8. bugly热更新,提交补丁时提示未匹配到可应用补丁包的APP版本,请确认补丁包的基线版本是否配置正确
  9. oracle手动锁表和解锁_oracle锁表查询和解锁方法是什么
  10. php永久mediaid,幺蛾子事件之-zabbix配置告警媒介报错mediaid重复
  11. python学习-day18、文件处理、
  12. 计算机基础教学质量分析报告,张丹菲信息技术质量分析报告1
  13. Scrapy中的item和pipline
  14. Android 9.0 (P)
  15. 数字IC小白起步(一)
  16. [转载].NET商业软件源码保护
  17. 2021疫情下Android技术人的宅家学习进阶指南!花了大价钱大厂内部买来的学习资料,爱看不看!(全网神级笔记整理)
  18. 百度大脑OCR网约车行程单识别上线邀测啦
  19. 零伽壹 | 福州出台打造国内一流枢纽机场等16个重大项目行动方案
  20. 计算机中负数除法取余问题分析与实现

热门文章

  1. 大数据影响人类认知和行为习惯
  2. 人的五要素:自我意识、关系意识、信息、计划、行动
  3. 小巫随笔12(致小巫逝去的童年)
  4. 从敏思博客的倒闭事件看历史重现...
  5. 给JAVA做个类VS的拖放式界面设计工具
  6. datatables 动态表格行合并
  7. 关于计算机上使用的光盘,电脑中使用Windows DVD Maker制作光盘的方法
  8. C#中datagridview实现单元格输入框加按键,下拉框功能
  9. 中国人保为闲人谷中药科技承保产品责任险,为消费者保驾护航!
  10. jQuery调用JSON数据学习第一天