算法
java一只鱼
请注明来意Mrzys1(VX),专注于大学生项目实战开发,讲解,毕业答疑辅导,软件工程硕士毕业,先后在两个大厂任职过,开发,需求分析都精通,目前做架构师,可以定制软件开发,帮助各位同学进行学习辅导,就业指导,简历指导,作业辅导,毕设辅导等业务。
展开
-
【leetCode算法-09】回文数问题
然后进入一个循环,每次循环都将输入的数字除以10并取出最低位,然后将这个低位添加到 reversedNumber 的末尾,直到 reversedNumber 大于输入的数字为止。另一种更高效的方法是对数字进行取模运算,同时将其除以10得到下一位,这样就可以得到数字的每一位,然后再比较第一位和最后一位,第二位和倒数第二位,以此类推。10+2=12,再执行1>1,1%10=1,revertedNumber=12,此时121不等于revertedNumber,因此不是回文数,返回false。原创 2023-11-03 14:48:10 · 57 阅读 · 0 评论 -
【LeetCode算法-08】字符串转成整数 问题
例如,对于输入字符串 " -42",输出应为-42。对于输入字符串 "4193 with words",输出应为4193。如果找到的有效数字字符前没有加号或减号,说明整个字符串都是正数。如果找到的第一个有效数字字符前有一个减号,说明整个字符串是负数。如果找到的第一个有效数字字符前有一个加号,这个加号会被忽略,因为正数不需要表示。接着把找到的所有有效的数字字符转换为整数,根据之前是否有负号来决定最终的结果是正数还是负数。最后还需要处理一些边界情况,比如如果字符串里只有加号或减号,或者是多个加号或减号相连。原创 2023-11-03 14:11:48 · 64 阅读 · 0 评论 -
【LeetCode算法-07】 翻转整数 问题
翻转整数是指将一个整数从末尾开始,以相反的顺序重新排列它的数字。例如,翻转整数123的结果是321。注意,这个过程只涉及到整数的数字部分,不包括正负号。这个函数可以正确地返回这个结果。在这个例子中,如果我们调用。原创 2023-11-03 11:12:04 · 70 阅读 · 0 评论 -
【LeetCode算法-06】 Z字型转换 问题
在这段代码中,我们首先创建了一个ArrayList来存储每一行的字符。然后我们遍历输入字符串s中的每一个字符,根据当前是否向下移动,将字符添加到对应的行中。最后我们将所有的行连接起来,就得到了新的字符串。Z字形转换是指在一个二维网格上,按照从左到右、从上到下、再从右到左、从下到上的Z字形顺序,依次选取每个单元格中的数字。最后将所有的数字连接成一个新的字符串。例如,对于上面的例子,我们得到的结果应该是"519575326898"。经过Z字形转换之后,得到的新字符串应该是"519575326898"。原创 2023-11-03 11:09:03 · 109 阅读 · 0 评论 -
【leetCode算法-05】 最长回文子串 问题
我们可以采用动态规划的思想,建立一个二维数组dp,其中dp[i][j]表示字符串s从索引i到j是否是回文。对于每一个dp[i][j],我们只需要检查s[i]是否等于s[j],以及dp[i+1][j-1]是否为true即可。一种常见的方法是建立一个字符映射表,然后遍历整个字符串,检查每一个字符出现的次数,如果每个字符出现的次数都是偶数,或者只有一个字符出现奇数次,那么这个字符串就是回文。所谓回文子串,就是一个字符串,无论从左往右读还是从右往左读都是一样的。那么最长的回文子串是"bab"。原创 2023-11-03 10:02:45 · 72 阅读 · 0 评论 -
【LeetCode算法-04】两个排序数组的中位数 问题
首先,我们需要明确什么是中位数。在一组数据中,中位数是指将这组数据从小到大排列后,处于中间位置的数。如果这组数据的数量是偶数,则中位数是中间两个数的平均值。接下来我们来看如何用Java实现这个功能。假设我们有两个已经排序好的数组A和B,我们的目标是找到这两个数组合并后的中位数。这个函数可以正确地返回这个结果。原创 2023-11-03 10:00:25 · 79 阅读 · 0 评论 -
【LeetCode算法-03】最长非重复子字符串问题
首先,创建一个空的哈希表,用于存储字符及其索引。然后从左到右遍历字符串。对于每个字符,如果它已经在哈希表中,则意味着我们在当前窗口中看到了重复的字符,我们需要找到重复字符的第一个出现的位置并将其移出窗口。否则,我们将字符添加到哈希表中,并更新当前窗口的最右边索引。这是一个经典的滑动窗口问题,我们可以使用一个哈希表来解决。滑动窗口是数组/字符串问题中常用的抽象概念。窗口通常在数组/字符串中向右移动。以上就是最长非重复子字符串问题的解决方案和结果。最后,我们返回窗口中的字符数作为答案。原创 2023-11-03 08:24:03 · 58 阅读 · 0 评论 -
【leetcode算法-02】单链表表示的两个数相加问题
首先,我们创建一个新的头节点并初始化进位为零。然后,我们遍历两个输入链表,计算每一位的和,并更新进位。我们还使用一个指向尾部节点的指针来简化链接新节点的操作。当所有元素都已添加后,如果还有剩余的进位,我们在末尾添加一个新的节点来表示它。最后,我们返回新的链表头部。在LeetCode第2题中,你需要将两个以单链表形式给出的数字相加,并以相同的形式返回结果。链表中的每个节点只包含一位数字,且数字是以倒序方式存储的。,因为 (7+5)+(2+6)+(4+4)+3=23,所以答案是。原创 2023-11-03 08:21:18 · 70 阅读 · 0 评论 -
【leetcode算法-01】两数之和问题
然后,对于每一个元素nums[i],我们都检查哈希表中是否存在target-nums[i]这个值。这个问题是这样的:给你一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。注意,这个解决方案的时间复杂度为O(n),其中n是数组的长度。空间复杂度也为O(n),因为在最坏的情况下,我们可能需要将所有的元素都存入哈希表中。最后,如果我们没有找到解,那么我们就抛出IllegalArgumentException异常,表示没有两个数的和等于目标值的解。原创 2023-11-03 08:15:02 · 42 阅读 · 0 评论