![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
刷题笔记
Did然
这个作者很懒,什么都没留下…
展开
-
二进制表示中质数个计算置位
二进制表示中质数个计算置位给定两个整数 L 和 R ,找到闭区间 [L, R] 范围内,计算置位位数为质数的整数个数。(注意,计算置位代表二进制表示中1的个数。例如 21 的二进制表示 10101 有 3 个计算置位。还有,1 不是质数。)L, R 是 L <= R 且在 [1, 10^6] 中的整数。R - L 的最大值为 10000。思路:1、质数的判定:考虑取值范围是 1~10^6 那么 10^6 对应2的位数为 log2 (10^6)+1=20 那么这个范围内的质数只有 2,3原创 2021-12-30 15:52:27 · 696 阅读 · 0 评论 -
检查单词是否为句中其他单词的前缀
检查单词是否为句中其他单词的前缀给你一个字符串 sentence 作为句子并指定检索词为 searchWord ,其中句子由若干用 单个空格 分隔的单词组成。请你检查检索词 searchWord 是否为句子 sentence 中任意单词的前缀。如果 searchWord 是某一个单词的前缀,则返回句子 sentence 中该单词所对应的下标(下标从 1 开始)。如果 searchWord 是多个单词的前缀,则返回匹配的第一个单词的下标(最小下标)。如果 searchWord 不是任何单词的前缀,则原创 2021-12-30 10:45:35 · 753 阅读 · 0 评论 -
前 n 个数字二进制中 1 的个数
前 n 个数字二进制中 1 的个数给定一个非负整数 n ,请计算 0 到 n 之间的每个数字的二进制表示中 1 的个数,并输出一个数组。 示例:输入: n = 2 输出: [0,1,1]解释: 0 --> 0 1 --> 1 2 --> 10思路:定义正整数 x 的「最低设置位」为 x的二进制表示中的最低的 1所在位。如10的二进制表示为1010,最低设置位为10。x&(x-1)目的是把x的最低设置位的1变成0,即与x中的1的个数相差1.所以bit[x]原创 2021-12-29 09:16:34 · 251 阅读 · 0 评论 -
斐波那契数
斐波那契数 斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0,F(1) = 1 F(n) = F(n - 1) + F(n - 2),其中 n > 1//暴力解法int fib(int N) { vector<int> dp(N + 1, 0);//初始化动态规划数组 dp[1] = dp[2] = 1; for (int i = 3; i &原创 2021-12-21 15:25:25 · 581 阅读 · 0 评论 -
剑指 Offer II 010. 和为 k 的子数组
## 剑指 Offer II 010. 和为 k 的子数组给定一个整数数组和一个整数 k ,请找到该数组中和为 k 的连续子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2解释: 此题 [1,1] 与 [1,1] 为两种不同的情况示例2:输入:nums = [1,2,3], k = 3输出: 2提示:1 <= nums.length <= 2 * 104-1000 <= nums[i] <= 1000-107 <= k原创 2021-11-06 22:31:31 · 76 阅读 · 0 评论