Leetcode 600
2021/9/11 6:04:54
本文主要是介绍Leetcode 600,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
题目很简单,小于等于n的、二进制不包含连续1的非负整数。
接下来我们试图举个具体的例子来分析这个问题。
假设 n 是 101001100, 它有 9 个二进制位。
为了解释方便,我们定义 F串:n 位的 F 串是 n 个不包含连续 1 的01串。
例如, 对于 n = 4,我们有 0000, 0001, 0010, 0100, 0101, 1000, 1001, 1010,一共 8 个 F串。
因为 n = 101001100,那么形如 0xxxxxxxx 这样的 F 串都是满足要求的。换句话说就是求 8 位的 F串有多少个
继续分析,10xxxxxxx 这样的串呢?我们不能确定那些符合要求,因此它对我们没有帮助。
101xxxxxx,这时候可以同理了,100xxxxxx这样的串又是符合我们要求的了,求 6 位的 F串有几个即可。
这样,是不是在从左往右的第 i 位发现了一个数码 1,就意味者我们就可以res += F[i-1]了呢?
直到10100[11]xx,我们发现,101000xxx 包含了 1010000xx 内的数,我们已经不必再重复计算了。
所以如果存在连续 1,我们就到此为止。
好难说清楚……看看就好,代码抄题解就行。
这篇关于Leetcode 600的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势
- 2025-01-03用LangChain构建会检索和搜索的智能聊天机器人指南
- 2025-01-03图像文字理解,OCR、大模型还是多模态模型?PalliGema2在QLoRA技术上的微调与应用
- 2025-01-03混合搜索:用LanceDB实现语义和关键词结合的搜索技术(应用于实际项目)
- 2025-01-03停止思考数据管道,开始构建数据平台:介绍Analytics Engineering Framework
- 2025-01-03如果 Azure-Samples/aks-store-demo 使用了 Score 会怎样?
- 2025-01-03Apache Flink概述:实时数据处理的利器