算法
文章平均质量分 56
林隐w
0阶二次元程序猿,积攒经验值中......
展开
-
【leetcode】258. 各位相加(简单)题解学习
计算一个整数的各位相加的做法是,每次计算当前整数除以 101010 的余数得到最低位数,将最低位数加到总和中,然后将当前整数除以 101010。重复上述操作直到当前整数变成 000,此时的总和即为原整数各位相加的结果。数字根是一个数学属性,它是将一个非负整数的各个位上的数字相加,然后重复这个过程,直到得到的结果是个位数为止。在上面的代码中,首先处理了特殊情况,即当输入参数为 0 时,直接返回 0。,反复将各个位上的数字相加,直到结果为一位数。最直观的方法是模拟各位相加的过程,直到剩下的数字是一位数。原创 2024-02-18 11:20:33 · 338 阅读 · 0 评论 -
【leetcode】1281. 整数的各位积和之差(简单)题解学习
通过一个while 循环来遍历整数 n 的各位数字,每次取出最低位的数字并更新乘积和总和。最后,返回各位数字之积与之和的差值。,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。各位数之积 = 4 * 4 * 2 * 1 = 32。各位数之和 = 4 + 4 + 2 + 1 = 11。各位数之积 = 2 * 3 * 4 = 24。各位数之和 = 2 + 3 + 4 = 9。结果 = 32 - 11 = 21。结果 = 24 - 9 = 15。原创 2024-02-18 11:05:32 · 342 阅读 · 0 评论 -
【leetcode】206. 反转链表(简单)题解学习
这种递归实现方式代码简短,但需要注意在链表较长时可能会导致递归深度过大而引发堆栈溢出的问题。链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?两个指针来遍历链表并进行倒序操作。方法来将除去头节点的子链表进行倒序处理,得到新的头节点。,请你反转链表,并返回反转后的链表。在这个简化后的代码中,我们仍然使用。指针指向前一个节点,然后更新。这个递归算法的思路是先递归调用。,从而完成节点的倒序。,即为倒序后的链表。原创 2024-02-06 15:42:03 · 483 阅读 · 0 评论 -
【leetcode】LCR 123. 图书整理 I(简单)题解学习
对于使用递归的方法,在每一次递归调用中,都会向链表的尾部逐步递进,因此时间复杂度为 O(N),其中 N 是链表的长度。对于使用栈辅助的方法,在遍历链表时,需要将每个节点的值存储到栈中,因此空间复杂度为 O(N)。然后,创建一个新的数组,长度为栈的大小,依次将栈中的元素出栈并存储到数组中。将给定的单链表反转,并将反转后的结果存储在一个数组中返回。在这个优化的方法中,我们先处理空链表的情况,如果链表为空,则直接返回一个空数组。记录链表的长度,同时在进行链表反转的同时,将节点值存储到数组中,最后返回该数组。原创 2024-02-06 11:07:15 · 598 阅读 · 0 评论 -
【leetcode】1512. 好数对的数目(简单)题解学习
需要遍历两次数组,第一次遍历统计每个数字出现的次数,第二次遍历计算好数对的数量。相较于暴力枚举的方法,这种方法的效率更高。有 4 组好数对,分别是 (0,3), (0,4), (3,4), (2,5) ,下标从 0 开始。次,所以它可以和其他任意一个相同的数字组成一组好数对,因此它能够组成的好数对数量就是。最后,我们遍历哈希表中的每个数字,将它们的好数对数量相加得到总的好数对数量,即为变量。总之,这句代码的作用是将当前数字能够组成的好数对数量累加到计数器上。,那么它可以和其他数字组成的好数对数量就是。原创 2024-02-04 10:21:34 · 476 阅读 · 0 评论 -
冒泡排序学习
冒泡排序的时间复杂度为O(n^2),其中n是待排序数组的长度。虽然冒泡排序简单易懂,但对于大规模的数据排序效率较低,因此在实际应用中一般不推荐使用。冒泡排序(Bubble Sort)是一种简单的排序算法,它通过重复地交换相邻的元素来排序。4. 重复以上步骤,每次都将待排序的元素中最大的元素排在已排序部分的末尾。1. 从待排序的数组中的第一个元素开始,依次比较相邻的两个元素。2. 如果前一个元素大于后一个元素,则交换它们的位置。方法对数组进行排序。最后,我们输出排序后的数组。方法中,我们创建了一个整数数组。原创 2023-12-16 16:19:48 · 482 阅读 · 0 评论 -
大O记法了解
其中,T(n)表示算法的时间复杂度,f(n)是问题规模n的某个函数,表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称为算法的渐近时间复杂度,简称时间复杂度。例如,一个包含单个循环的算法,每次循环都会执行固定数量的操作,那么复杂度可以表示为 O(n),其中 n 是循环的迭代次数。总之,计算算法的复杂度需要分析算法的执行过程,确定关键操作的执行次数,并根据这些信息来推导复杂度表达式。在大O记法中,使用 O(f(n)) 表示算法的复杂度,其中 f(n) 是问题规模 n 的函数。原创 2023-12-16 15:52:14 · 469 阅读 · 0 评论