自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 C++中的特殊函数

1.求公因数__gcd()2.排序函数sort ()3.vector容器。4.输入未知长度数组。

2024-04-11 17:26:54 127

原创 二进制中1的个数

编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为。这段代码的思路是利用位运算中的与运算(&)来逐位判断二进制数中的每一位,从而计算出1的个数。来判断当前比较的位是否为1。如果结果不为0,则说明当前比较的位是1,我们将计数器。当对二进制数的每一位进行比较时,我们使用一个二进制数。左移1位,这样就可以逐位比较二进制数中的所有位。中,共有 31 位为 '1'。初始值为1,表示比较最低位。中,共有一位为 '1'。,即为二进制数中1的个数。

2023-08-21 18:50:12 36 1

原创 剑指 Offer 10- II. 青蛙跳台阶问题

青蛙跳台阶问题可以用斐波那契数列方法来解决是因为问题本质上可以转化为求解斐波那契数列。在青蛙跳台阶问题中,每次只能跳1个或2个台阶,青蛙要跳上n个台阶,可以从第n-1个台阶跳1个台阶,或者从第n-2个台阶跳2个台阶。因此,跳上第n个台阶的方法数等于跳上第n-1个台阶的方法数加上跳上第n-2个台阶的方法数。因此,通过使用斐波那契数列的方法,我们可以高效地解决青蛙跳台阶问题,而不是使用暴力递归方法或者其他复杂的动态规划方法。一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。,即跳上第n个台阶的方法数。

2023-08-21 18:12:56 43 1

原创 剑指 Offer 10- I. 斐波那契数列

对于斐波那契数列,当计算出的和超过 `MOD` 的时候,取模操作可以确保结果仍然在合理的范围内,并且可以获得正确的答案。例如,假设 `p` 等于 1,`q` 等于 2,而 `MOD` 等于 1000000007。在这个代码示例中,`MOD`的值为1000000007,用于对每个计算出的斐波那契数进行取模操作。它使用了前两项 `p` 和 `q` 的和,并对该和结果进行了 `MOD` 的取模操作。这样做的目的是确保结果在取模后不会溢出,同时可以加速计算,特别是当使用的取模数是一个较大的质数时。

2023-08-20 17:17:29 31 1

原创 剑指 Offer 61. 扑克牌中的顺子

张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。2. 使用一个循环检查数组中的每个元素(除了第一个元素)是否有重复的非零数字。如果存在重复的非零数字,则不可能构成顺子,返回 `false`。6. 判断如果差值加一减去非零数字的个数小于等于零的个数,则说明可以构成顺子,返回 `true`;5. 统计非零数字和零的个数,并计算最大数字和最小数字之间的差值。3. 然后,统计数组中零的个数,表示大小王的个数。

2023-08-19 20:56:42 64

原创 剑指 Offer 17. 打印从1到最大的n位数

按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。函数用于计算一个数的幂。

2023-08-19 17:44:55 23

原创 剑指 Offer 32 - II. 从上到下打印二叉树 II

在每一层的循环中,定义一个向量nxt来存储下一层的节点,定义一个向量vals来存储当前层节点的值。遍历当前层节点的过程中,将节点的值添加到vals中,同时将其左右孩子节点添加到nxt中。从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。然后定义一个二维数组ans来存储结果,定义一个向量cur来存储当前层的节点。这段代码实现了二叉树的层序遍历,返回一个二维数组表示每一层的节点值。这段代码的时间复杂度为O(n),其中n是二叉树中节点的个数。然后将nxt赋值给cur,准备遍历下一层。

2023-08-17 20:30:19 19 1

原创 剑指 Offer 03. 数组中重复的数字

在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。在每次遍历时,判断当前数字是否已经存在于集合中,如果存在即为重复数字,直接返回。如果遍历完整个数组后仍然没有找到重复数字,则返回-1。大于1时,说明找到了重复数字,直接返回该数字。如果遍历完整个数组后没有找到重复数字,则返回-1。利用哈希集合来记录已经遍历过的数字,从而快速判断是否存在重复。这种优化后的算法时间复杂度为O(n),空间复杂度为O(n)。

2023-08-16 15:59:59 39

原创 剑指 Offer 18. 删除链表的节点

如果找到了目标节点,将前一个节点"pre"指向当前节点"cur"的下一个节点,即删除了目标节点。本题采用双指针的方式,cur指向当前遍历的结点,pre指向cur的前一个结点,如果遇到val就直接删除,这里需要特殊判断一下头结点就是val的情况。如果头节点的值就是要删除的值,直接返回头节点的下一个节点即可。给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9.给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。

2023-08-14 17:02:13 27

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除