Leetcode
leetcode
qq_46027243
这个作者很懒,什么都没留下…
展开
-
布赖恩·克尼根位计数算法说明及简单使用
1,算法说明一个数 number,若对 number 与 number-1 做与运算,即 number&(number-1) 时,则number的 二进制表示中最右边为 1 的位会被置零。例如:number = 44,其二进制为 101100number = number&(number-1) = 40, 其二进制为 101000,最右边的 1 被置零;number = number&(number-1) = 32, 其二进制为100000,最右边的 1 被置零;numbe原创 2021-03-19 16:43:06 · 210 阅读 · 0 评论 -
打印从1到最大的n位数:使用大数
题目:给定一个正整数 n,打印从 1 到最大的 n 位数。例如:n = 2, 则打印从 1 到 99;n = 3, 则打印从 1 到 999。思路:在 n 比较小(比如n=1或n=2或n=3)时,可以使用一个循环简单的解决问题,但当 n 比较大时,打印的数字可能会超出 int 或 long所能表示的范围,这是就应该使用string来表示大数以解决问题。代码:#include<iostream>#include<vector>#include<cmath>原创 2021-04-03 15:07:32 · 148 阅读 · 0 评论 -
Leetcode 1299:将每个元素替换为右侧最大元素
题目:思路:每个元素都要被它右边最大的元素替换,那么主要问题就是怎么方便的找到其右边最大的元素,这里创建一个结果向量来保存结果数据,先将结果向量的最后一个元素置为 -1,再从右向左操作,当要更新结果向量第 i 个位置的值时,要看到其第 i+1 个位置保存的是原向量第 i+1 个位置之后的元素的最大值,因此直接将结果向量第 i+1个位置的数值与原向量第 i+1 个位置的值比较,其中较大值就是结果向量第 i 个位置的值。代码实现:vector<int> replaceElements(ve原创 2021-04-03 14:12:56 · 112 阅读 · 0 评论