
LeetCode题解
文章平均质量分 89
LeetCode题解
zhangcoder
大一 KEEP CODING!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CD49.【C++ Dev】容器适配器模式(含typename的用法)
介绍容器适配器模式及其在STL栈和队列中的应用。主要内容包括:1)容器适配器概念,通过复用其他容器实现功能转换;2)用同一模板类实现数组栈(基于vector)和链式栈(基于list);3)两种方法用vector实现队列,方法1强制适配但效率低,方法2使用deque适配更高效;4)讨论了带容器适配器的迭代器写法,需使用typename声明依赖类型。文章通过LeetCode题目验证了实现方案,对比了不同容器的性能差异。原创 2025-07-13 20:13:18 · 687 阅读 · 0 评论 -
CD48.【C++ Dev】栈和队列练习题(栈的压入弹出序列、二叉树的层序遍历(正序和逆序))
讨论如何判断给定弹出序列是否为某栈压入序列的可能弹出顺序。通过模拟栈操作,使用双指针分别遍历压入序列和弹出序列。当栈顶元素匹配弹出序列时出栈,否则继续压入元素。若最终两个序列都遍历完且栈为空,则返回true;若压入序列已遍历完但栈顶元素不匹配当前弹出元素,则返回false。时间复杂度O(n),空间复杂度O(n)。示例验证了[1,2,3,4,5]与[4,5,3,2,1]匹配,而[4,3,5,1,2]不匹配的情况。原创 2025-07-12 21:48:08 · 851 阅读 · 0 评论 -
L61.【LeetCode题解】最小栈
介绍两种实现最小栈的方法。第一种方法使用双栈结构,主栈存储元素,辅助栈记录最小元素顺序,通过比较更新辅助栈来保证常数时间获取最小值。第二种方法采用差值栈技术,仅用一个栈存储元素与当前最小值的差值,通过差值运算来维护最小值,解决了栈顶是最小值时的更新问题,并注意处理数值溢出情况。两种方法都能在O(1)时间复杂度内完成所有操作,其中差值栈方法空间效率更优。原创 2025-07-10 21:59:38 · 735 阅读 · 0 评论 -
CC56.【C++ Cont】分治算法:快排的简要复习(含手撕快排题)
分治算法基本思想及其在快速排序中的应用。重点复习了优化后的Hoare快速排序算法,包含随机选key和三路划分的实现方法。通过"颜色分类"和"排序数组"两个例题,展示了如何运用三路划分思想进行数组排序。代码实现采用递归方式,对小于和大于key的区间分别递归处理,最终完成整个数组的升序排列。该算法时间复杂度为O(nlogn),空间复杂度较优,适用于大规模数据排序。原创 2025-07-04 20:46:22 · 1043 阅读 · 0 评论 -
L58.【LeetCode题解】模拟算法习题集1(Z 字形变换、外观数列)
Z字形变换采用两种解法:方法1通过二维数组模拟Z字形填充过程,分竖填和斜填两步完成;方法2优化为找规律解法,通过分析行间字符间隔规律直接计算位置。两种方法均需特殊处理numRows=1的情况,时间复杂度均为O(n)。 外观数列问题提供三种解法:方法1通过迭代生成数列;改进版仅保留当前结果节省空间;双指针法优化计数过程。另有打表法利用n≤30的特性,预生成结果直接查询。核心都是对前一项进行行程长度编码,典型解法时间复杂度为O(n*m),其中m为字符串平均长度。原创 2025-07-04 15:03:44 · 626 阅读 · 0 评论 -
L57.【LeetCode题解】位运算习题集2(只出现一次的数字 II、消失的两个数字)
解决数组中数字出现次数问题的两种方法:哈希表法和位运算。针对"只出现一次的数字II"问题,哈希表法统计元素出现次数,位运算法则通过按位统计和模3运算找到唯一数字。对于"消失的两个数字"问题,方法1使用数组标记出现数字,方法2则运用位运算技巧,将问题转化为寻找两个只出现一次的数字。位运算方法在保证线性时间复杂度的同时,有效节省了空间复杂度,是更优的解决方案。文章还提供了详细的代码实现和复杂度分析。原创 2025-06-30 10:15:52 · 720 阅读 · 0 评论 -
L56.【LeetCode题解】位运算习题集1(只出现一次的数字 III、判定字符是否唯一、两整数之和)
【摘要】文章分析了两个算法问题:1)在给定数组中找出仅出现一次的两个数字,通过位运算分组异或实现线性时间复杂度;2)判断字符串字符是否唯一,提出基于数组计数和位掩码两种解法。重点解析了位运算在[只出现一次的数字III]中的应用,包括异或性质、lowbit提取和最右侧1的分组原理,同时对比了字符串查重问题的不同实现方式,强调了算法优化的空间复杂度考量。原创 2025-06-28 20:43:00 · 862 阅读 · 0 评论 -
CC55.【C++ Cont】位运算的最终总结(含比特位计数、汉明距离)
回顾了位运算优先级、位操作(判断、修改、提取等)的核心方法,重点介绍了位图思想和异或运算定律。随后通过LeetCode题目"比特位计数"展示了三种解法:暴力循环32位法(O(nlogn))、奇偶规律优化法(O(n))以及快速统计法(利用n&(n-1))。最后以"汉明距离"为例,演示如何通过异或和位操作高效解决问题。全文强调位运算的低层级优化思维,为算法性能提升提供有效途径。原创 2025-06-26 10:09:59 · 618 阅读 · 0 评论 -
L56.【LeetCode题解】 电话号码的字母组合
LeetCode电话号码字母组合问题的递归解法。给定数字字符串(2-9),需返回所有可能的字母组合。采用DFS递归算法:建立数字-字母映射表,递归函数通过level参数跟踪当前处理位置,当level等于输入长度时保存当前组合。处理特殊情况(空输入)直接返回空结果。以"258"为例,展示了递归调用的展开过程,最终得到3×3×3=27种组合。代码实现中注意字符串传值而非引用,确保递归回溯时正确性。时间复杂度为O(3^N ×4^M),其中N/M对应3/4字母的数字个数。原创 2025-05-31 21:59:33 · 974 阅读 · 0 评论 -
L54.【LeetCode题解】前缀和习题集1(寻找数组的中心下标,除自身以外数组的乘积,和为K的子数组)
两种使用前缀和/积与后缀和/积解决数组问题的算法。首先通过724题展示了寻找数组中心下标的方法,定义了前缀和数组dp[i]和后缀和数组g[i],通过比较两者来定位中心下标。接着在238题中,将概念扩展到乘积运算,构建前缀积数组f[i]和后缀积数组g[i],最终通过两者相乘得到除自身外的数组乘积。文章提供了两种代码实现方式,并强调了初始化条件和状态转移方程的重要性。这些方法都能在O(n)时间复杂度内高效解决问题,体现了前缀和/积技巧在数组处理中的实用性。原创 2025-05-24 20:36:46 · 860 阅读 · 0 评论 -
CC53.【C++ Cont】一维前缀和
介绍前缀和的概念及其在算法中的应用。前缀和是一种通过预处理数组来快速计算任意区间和的技术,能够显著优化时间复杂度。文章通过例题“一维前缀和”展示了暴力解法和前缀和解法的对比,指出前缀和解法通过预处理数组和递推公式,降低时间复杂度,还以“最大子段和”问题为例,展示了如何利用前缀和优化算法,通过改进方法1的两层循环,进一步降低时间复杂度。原创 2025-05-22 18:50:50 · 1118 阅读 · 0 评论 -
L53.【LeetCode题解】二分法习题集2
本文主要讨论了三个算法问题的分析与解决:寻找峰值、寻找旋转排序数组中的最小值以及点名问题。对于寻找峰值问题,通过二分法利用数组的二段性,时间复杂度为O(logn)。寻找旋转排序数组中的最小值问题,通过分析数组的增长趋势,设计二分法找到最小值,时间复杂度同样为O(logn)。点名问题则通过二分法查找缺失的学号,时间复杂度为O(logn)。每个问题都提供了详细的代码实现和提交结果,展示了如何通过二分法高效解决这些问题。原创 2025-05-21 21:35:12 · 704 阅读 · 0 评论 -
L52.【LeetCode题解】二分法习题集1
回顾二分查找的基本模板,详细分析了LCR072.x的平方根、搜索插入位置和LCR069.山脉数组的峰顶索引原创 2025-05-16 14:15:11 · 622 阅读 · 0 评论 -
CC52.【C++ Cont】二分查找的左、右边界模版
本文详细介绍了如何在有序数组中查找目标值的起始和结束位置,重点讲解了二分查找的优化方法。通过分析数组的二段性,文章提出了改进的二分查找模版,分别用于查找左边界和右边界。查找左边界时,通过调整循环条件和更新策略,确保算法在O(log n)时间复杂度内完成;查找右边界时,采用类似的思路,但需注意更新mid的公式以避免死循环。文章还提供了具体的代码实现,并强调了细节处理的重要性,如循环条件的设置和mid的更新方式。最后,总结了查找左边界和右边界的万能模版,便于读者在实际应用中快速套用。原创 2025-05-15 15:14:05 · 877 阅读 · 0 评论 -
L51.【LeetCode题解】LCR 072. x 的平方根 (6种方法)
计算非负整数平方根的多种方法,重点分析了卡马克逆平方根算法和牛顿迭代法的实现。此外,还介绍了循环枚举和内联汇编的方法,分别通过逐一尝试和直接调用硬件指令来实现平方根计算。原创 2025-05-13 09:17:42 · 1130 阅读 · 0 评论 -
CC51.【C++ Cont】二分查找的普通模版
本文回顾了二分查找算法,并提炼了其关键点。二分查找不仅适用于有序数组,还可用于满足特定规律的数组。文章以LeetCode 704题为例,详细分析了二分查找的实现过程,强调其核心思想是“分两段,舍一段,操作另一段”。通过代码示例展示了如何通过二分法高效查找目标值,并提供了防止整数溢出的方法。此外,文章还提到三分法、四分法及随机数分段的应用,总结了二分查找的通用模板及注意事项,如判断条件、mid的防溢出处理以及left和right的更新方式。原创 2025-05-12 10:09:35 · 854 阅读 · 0 评论 -
L51.【LeetCode题解】438. 找到字符串中所有字母异位词(四种方法)
1.题目2.分析暴力解法方法1:排序(超时)方法2:哈希表(险过) ★判断两个哈希表是否相同算法(通用方法,必须掌握)能相等的前提:两个哈希表的大小相等哈希表有迭代器,可以使用范围for从头到尾遍历提交结果优化方法:定长滑动窗口提交结果使用哈希数组更快提交结果★★★更优化的方法:不定长滑动窗口(比定长的要快!)提交结果原创 2025-05-11 15:41:31 · 1076 阅读 · 0 评论 -
L48.【LeetCode题解】904. 水果成篮
你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组fruits表示,其中fruits[i]是第i棵树上的水果。你想要尽可能多地收集水果。给你一个整数数组fruits,返回你可以收集的水果的数目。fruits = [3可以采摘全部 3 棵树。3可以采摘 [1,2,2] 这三棵树。如果从第一棵树开始采摘,则只能采摘 [0,1] 这两棵树。4可以采摘 [2,3,2,2] 这四棵树。如果从第一棵树开始采摘,则只能采摘 [1,2] 这两棵树。,3,3,4]5。原创 2025-05-09 19:28:23 · 1315 阅读 · 0 评论 -
L47.【LeetCode题解】1658. 将 x 减到 0 的最小操作数
循环变量为right,每循环一次就sum+=nums[right],如果sum>target,那么left右移,直到sum<=target停止右移,如果满足sum==target,执行len=max(len,right-left+1)即可,right到nums.size()-1时停止循环。3+2+1+1+3==10,移除红色区域的元素即可,红色区域一共5个数,绿色区域的元素被保留。最佳解决方案是移除后三个元素和前两个元素(总共 5 次操作),将 x 减到 0。",红色区域的元素个数要最小,则。原创 2025-05-08 08:42:37 · 789 阅读 · 0 评论 -
L46.【LeetCode题解】1004. 最大连续1的个数 III
zero>k,需要出窗口,即left++,(left++之前,如果nums[left]为1,不变动zero;1.初始化窗口的两个端点:left=0,right=0,zero=0(zero为存储滑动窗口中0的个数)m时,讨论m个0翻转1个、翻转2个、...、翻转k个的情况,针对每个情况求连续1的最大个数。m时,讨论m个0翻转1个、翻转2个、...、翻转m个的情况,针对每个情况求连续1的最大个数。以[1,1,1,0,0,0,1,1,1,1,1],k==2为例。转化思路:设区间[left,right],原创 2025-05-04 15:19:25 · 951 阅读 · 0 评论 -
L45.【LeetCode题解】LCR 016. 无重复字符的最长子串
思想类似,都可以使用left和right来维护滑动窗口,如果right指向的字符与字符串的字符不重复,right++,如果right指向的字符与子字符串的字符重复,left++,枚举所有子串,之后判断每个子串是否无重复字符,固定左边界left,right从left+1。,查找以left为起点的无重复字符的子串,一旦发现right指向重复的字符,left++有可能重复的元素在窗口的中间的某个位置,此时需要。1.left++: 尝试去除重复的元素,,直到窗口中没有重复的元素才能更新结果,,所以其长度为 1。原创 2025-05-02 14:31:23 · 503 阅读 · 0 评论 -
L44.【LeetCode题解】面试题 01.07. 旋转矩阵(四种方法)
的起始点和终止点分别为A、B、C和D,则 A_x、A_y、B_x、B_y、C_x、C_y、D_x和D_y分别为它们的横纵坐标。矩阵表示的图像,其中每个像素的大小为 4 字节。如果对于一个N*N的矩阵,对其进行按行翻转,可以左乘矩阵。的起始点分别为旋转前矩阵的右下角和旋转后矩阵的做下角),代码遵循矩阵的乘法规则进行处理(注:和0相乘没有意义)注:将矩阵对称时,注意只需要对称上三角的元素(A和C的坐标是固定的,对于N*N的方阵而言,可由此来计算旋转后各个元素的坐标。不占用额外内存空间能否做到?原创 2025-05-01 09:18:31 · 1165 阅读 · 0 评论 -
L43.【LeetCode题解】转置矩阵(C语言)
则可以推出:returnSize是返回矩阵的行数, *returnColumnSizes数组存储返回矩阵的每一行元素的个数(即列数)可以得出:matrixSize是矩阵的行数,矩阵第i行的元素个数为matrixColSize[i](i从0开始算)calls free(),即假定调用者调用了free(),transpose函数是被调用者调用的。注意不用写free(),LeetCode上注释写着:assume。是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。给你一个二维整数数组。原创 2025-04-30 13:05:20 · 331 阅读 · 0 评论 -
CC50.【C++ Cont】滑动窗口
right从左边界向后枚举,right每指向一个新数,就为sum加上这个新数(思想类似前缀和,比方法1每次循环重新计算一遍sum要快)此时sum>target,记录len的值:right-left+1==4,但这个len不一定是最小值,因此要继续"滑动"窗口。left++,为"出窗口"(移除旧数据)sum减去对应的值,注意right不用回退,要利用。给定闭区间[left,right],left为区间左边界,right为区间的右边界。如果sum<target,right++,为"进窗口"(原创 2025-04-29 20:13:50 · 1091 阅读 · 0 评论 -
L22.5.【LeetCode题解】环形链表(返回环的入口点 方法2)
给定一个链表,返回链表开始入环的第一个节点。从链表的头节点开始沿着。指针进入环的第一个节点为环的入口节点。如果链表无环,则返回。来表示链表尾连接到链表中的位置(索引从 0 开始)。之后断开相遇点与后一个节点之间的链接(设相遇节点为meet,即。这就转换成了相交链表问题,求出相交节点的地址即可。链表中有一个环,其尾部连接到第二个节点。链表中有一个环,其尾部连接到第一个节点。为了表示给定链表中的环,我们使用整数。返回索引为 1 的链表节点。返回索引为 0 的链表节点。,则在该链表中没有环。原创 2025-04-25 18:58:20 · 564 阅读 · 0 评论 -
L42.【LeetCode题解】四数之和(双指针思想) 从汇编角度分析报错原因
给你一个由n个整数组成的数组nums,和一个目标值target。请你找出并返回满足下述全部条件且的四元组bcd你可以按返回答案。原创 2025-04-18 09:49:58 · 1052 阅读 · 0 评论 -
L41.【LeetCode题解】三数之和(双指针思想)
使用左右指针left和right来移动,如果满足题目条件,就将{nums[left],nums[right],nums[bound]}尾插到类型为vector<vector<int>> 的ret中。显然需要去重,right前后都是-1,需要跳过重复的情况,可以比较right前后的值是否相同,使用循环来跳过所有重复的情况,因为。的情况下且至少有两个三元组的元素相同时,需要去重,前提是和为0,如果>0或<0,不需要去重。例如给定以下数组[-1,0,1,2,1,-4],排过序后为[-4,-1,0,1,1,2]原创 2025-04-16 14:26:29 · 1257 阅读 · 0 评论 -
L40.【LeetCode题解】查找总价格为目标值的两个商品(剑指offer:和为s的两个数字) (双指针思想,内含详细的优化过程)
购物车内的商品价格按照升序记录于数组price。请在购物车中找到两个商品的价格总和刚好是target。若存在多种情况,返回任一结果即可。[3,15] 或者 [15,3][27,34] 或者 [34,27]原创 2025-04-12 19:36:43 · 1046 阅读 · 0 评论 -
L39.【LeetCode题解】有效三角形的个数 (双指针思想)
left向右移动时,均满足nums[left]+nums[right]==2+9>nums[bound]变化的,因此当nums[i]+nums[j]>nums[k]时,提前结束对k的循环,节省时间。以排过序的数组{2,2,3,4,5,9,10}为例,bound从右向左移动,三层循环,枚举所有三条边的组合,满足"任意两边之和大于第三边",计数器++先对数组排序,之后使用原来的三重循环,只不过在一个一个枚举的时候,(注:虽然2,3,4是重复的,但仍然要计入)2,3,4 (使用第一个 2)原创 2025-04-11 14:16:36 · 700 阅读 · 0 评论 -
L38.【LeetCode题解】盛最多水的容器 (双指针思想)
给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i, 0)和。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。你不能倾斜容器。49图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。1。原创 2025-04-07 21:50:13 · 884 阅读 · 0 评论 -
L37.【LeetCode题解】快乐数(双指针思想)
本题n的类型为int,而int类型的最大值为2147483647,process(2147483647)==260,则给定任意一个。n,process(n)的结果在[1,260],则经过261次运算,至少有两次process执行的结果是相同的,因此结果是循环的。,再判断"快数"和"慢数"相遇的值即可("快数"和"慢数"选任何一个判断其值),如果为1,为快乐数,反之不是快乐数。设"快数"为fast,慢数为slow,初始值都为n,"快数"一次循环变化两次,"慢数"一次循环变化一次,,没有其他不循环的情况。原创 2025-04-05 10:42:40 · 502 阅读 · 0 评论 -
L36.【LeetCode笔记】循环队列(链表解法)
发现四个选项都有%maxsize,解释maxsize:循环队列的总空间,例如当maxsize==5时,最多只能存4个元素,要留下一个空间来判断空和满。是正确的,如果为ring.end+1 == ring.front,则在第1、2步时会出问题(注意:第1~4步包含了front和end所有可能的取值,,在上方代码的myCircularQueueRear函数中,rear指向尾节点的下一个节点,// 返回 true。// 返回 true。文章中提到过数组的解法,链表解决的思想也在那篇文章中,本文写写链表的代码。原创 2025-03-15 09:57:07 · 879 阅读 · 0 评论 -
L35.【LeetCode题解】循环队列(数组解法)
队列不为空时,删除元素:当front==k时,再插入元素时front++,之后处理越界的front,使其等于0,则,front==(front+1)%(k+1)队列未满时,插入元素:当rear==k时,再插入元素时rear++,之后处理越界的rear,使其等于0,则,rear==(rear+1)%(k+1)要访问循环队列的头和尾,需要两个指针front(头指针)和rear(尾指针),初始状态下,链表为空时,front和rear都指向同一个节点。// 返回 true。// 返回 true。原创 2025-03-06 09:04:07 · 1039 阅读 · 0 评论 -
L34.【LeetCode题解】随机链表的复制(复杂链表的复制)
给你一个长度为n的链表,每个节点包含一个额外增加的随机指针random,该指针可以指向链表中的任何节点或空节点。构造这个链表的。深拷贝应该正好由n个节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的next指针和random指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。。例如,如果原链表中有X和Y两个节点,其中。那么在复制链表中对应的两个节点x和y,同样有。返回复制链表的头节点。用一个由n个节点组成的链表来表示输入/输出中的链表。原创 2025-02-14 10:28:01 · 993 阅读 · 1 评论 -
L9.【LeetCode题解】分割链表(三种方法)
比x小的放到一个链表,比x大的放到另外一个链表,最后将这两个链表与x合并为一个链表,返回头节点的地址.为了避免尾插时找尾,为两个链表定义各自的尾指针。设p1找大值,p2找小值,注意:一开始要让p1和p2都要指向同一个节点,且节点的值。★注:示例1画的图其实是错的,最后的结果应该是1->2->2->,这样后面才容易换,之后p2先出发找小,与p1交换才能让。的节点之前",因此就要通过交换两个指针指向的值来让。的节点之前"显然是数据分块问题,可以在。给你一个链表的头节点。带哨兵位的新链表进行。原创 2025-02-09 09:46:32 · 1013 阅读 · 0 评论 -
L33.【LeetCode题解】轮转数组
2.临时开辟的空间需要用malloc(可以不用判断是否成功开辟),结束后养成良好的习惯,用free函数销毁,再将指针置空。k次那就逆置k次,即可以写一个reverse函数,再调用reverse函数k次(即覆盖k次),注意是闭区间,元素个数为(numsSize-1)-(numsSize-k)+1,其余同理。先前(n-k)个逆置,再后k个逆置,最后整体(n个)逆置。向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100],耗时太长,不建议使用,其实可以用空间换时间。原创 2025-02-03 09:43:48 · 635 阅读 · 0 评论 -
L32.【LeetCode笔记】设计链表
你可以选择使用单链表或者双链表,设计并实现自己的链表。val和next。val是当前节点的值,next是指向下一个节点的指针/引用。如果是双向链表,则还需要属性prev以指示链表中的上一个节点。假设链表中的所有节点下标从开始。实现index-1valvalvalindexindexindexindex// 链表变为 1->2->3// 返回 2// 现在,链表变为 1->3// 返回 3getaddAtHeadaddAtTailaddAtIndex2000。原创 2025-01-31 08:54:44 · 874 阅读 · 0 评论 -
L31.【LeetCode题解】丢失的数字
摘要:题目要求在0到n的数组中找出缺失的数字。给出了三种解法:1)利用异或运算性质,将数组与完整序列异或得到结果;2)优化异或方法,合并循环;3)数学求和法,计算完整序列和与实际数组和的差值。三种方法均为O(n)时间复杂度。其中异或法通过位运算实现,求和法则更直观简洁。代码实现展示了不同解法的差异与优化思路。原创 2025-01-23 10:54:31 · 542 阅读 · 0 评论 -
L30.【LeetCode题解】移动零(三种解法)
设一指针ptr,从头到尾遍历数组,发现num[ptr]==0时,执行向前覆盖,尾部填充一个0,但如果只这样写会有问题!移动一次后发现1前面的元素nums[ptr-1]==0,即没有完全移动好1,那么这种情况出现时。:设两个指针prev和cur,当初始prev==0,cur==1时(先排除数组元素。0 --转换--> nums[prev]0 --转换--> nums[prev]0 --转换--> nums[prev]0 :附近没有0,prev和cur都++例如测试数据[0,0,1,0]原创 2025-01-06 15:18:35 · 972 阅读 · 0 评论 -
L29.【LeetCode笔记】2 的幂(五种解法)
恰为int范围,其中int范围中最大的2的幂数为0x40000000,用0x40000000%n==0。直接将 n 二进制表示的最低位 1 移除,若为2的幂,则运算结果为0。1.作用:log函数默认以e为底,则log(x)返回的是。,请你判断该整数是否是 2 的幂次方。2的幂的二进制数的特点:只有一个位为1,其余全为0。将log(0)改为log(-1)再运行。直接获取 n 二进制表示的最低位的 1。如果n(n>0)为2的幂,一定满足。2.参数x的重要提示:x必须大于0。其实可以直接返回逻辑运算的结果。原创 2025-01-04 15:14:46 · 802 阅读 · 0 评论