LeetCode初级算法
leetcode刷题——初级算法
ぁのひと
这个作者很懒,什么都没留下…
展开
-
字符串——整数反转
链接:https://leetcode.cn/leetbook/read/top-interview-questions-easy/xnx13t/商业转载请联系作者获得授权,非商业转载请注明出处。每次除以10取余数就得到当前位置的数,直到x为个位数。如果反转后整数超过 32 位的有符号整数的范围。给你一个 32 位的有符号整数。来源:力扣(LeetCode)中的数字部分反转后的结果。作者:LeetCode。转载 2023-05-06 10:55:55 · 154 阅读 · 0 评论 -
字符串——反转字符串
链接:https://leetcode.cn/leetbook/read/top-interview-questions-easy/xnhbqj/编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组。商业转载请联系作者获得授权,非商业转载请注明出处。不要给另外的数组分配额外的空间,你必须。来源:力扣(LeetCode)的额外空间解决这一问题。作者:LeetCode。转载 2023-05-06 10:32:11 · 123 阅读 · 0 评论 -
数组:旋转图像
商业转载请联系作者获得授权,非商业转载请注明出处。旋转图像,这意味着你需要直接修改输入的二维矩阵。请你将图像顺时针旋转 90 度。顺时针旋转90度,可以一圈一圈旋转。来源:力扣(LeetCode)使用另一个矩阵来旋转图像。作者:LeetCode。转载 2023-04-20 11:05:51 · 130 阅读 · 0 评论 -
数组:有效的数独
链接:https://leetcode.cn/leetbook/read/top-interview-questions-easy/x2f9gg/来记录 某行/某列/某个小方块 的数值填入情况:使用从低位开始的。商业转载请联系作者获得授权,非商业转载请注明出处。,验证已经填入的数字是否有效即可。位来记录该数值是否已被填入。来源:力扣(LeetCode)在每一个以粗实线分隔的。在每一行只能出现一次。在每一列只能出现一次。作者:LeetCode。转载 2023-04-20 10:53:45 · 128 阅读 · 0 评论 -
数组:两数之和
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。两层循环遍历,遇到目标答案返回即可。时间复杂度为O(n²)。根据差值去找元素,时间复杂度为O(n)。整数,并返回它们的数组下标。来源:力扣(LeetCode)你可以按任意顺序返回答案。,请你在该数组中找出。转载 2023-04-19 11:31:08 · 50 阅读 · 0 评论 -
数组:移动零
请注意 ,必须在不复制数组的情况下原地对数组进行操作。尽量减少完成的操作次数。使用双指针,把所有的非0元素按顺序移到数组前面,后面都是0。移动到数组的末尾,同时保持非零元素的相对顺序。,编写一个函数将所有。来源:LeetCode。转载 2023-04-19 11:13:14 · 44 阅读 · 0 评论 -
数组:加一
本题主要考察末尾n(n<=数组长度)个数为9的情况,可以从后向前遍历,不是9的话直接加1返回即可;是9就把当前位置置为0;如果所有元素都是9,就是数组长度加1,首个元素为1,其余均为0。你可以假设除了整数 0 之外,这个整数不会以零开头。最高位数字存放在数组的首位, 数组中每个元素只存储。数组所表示的非负整数,在该数的基础上加一。来源:LeetCode。转载 2023-04-19 09:32:05 · 63 阅读 · 0 评论 -
数组:两个数组的交集 II
请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。,如果两个指针指的值相同,说明这个值是交集,把值加到新的List中,两个指针都向后移一位;如果值不同,值小的指针向后移一位。先对数组排序,然后遍历。用两个指针分别分别指向。来源:LeetCode。转载 2023-04-18 10:00:43 · 62 阅读 · 0 评论 -
数组:只出现一次的数字
遍历数组,将数组中的元素添加到Set中,如果添加失败,说明之前添加过,有重复。最终Set中只有一个元素,就是只出现了一次的值。但是此方法需要用到额外内存空间。,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。Set接口的存储特点:无序不可重复,可以存放唯一一个null值。时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。所以数组经过一轮异或运算,单独的值就剩下了。来源:LeetCode。转载 2023-04-18 08:49:06 · 61 阅读 · 0 评论 -
数组:存在重复元素
这里我最初的想法是用快排,但是快排在最差的情况下时间复杂度为O(n²),有一个测试用例超时了。看到java.util.*中有Arrays.sort()函数可以直接排序,查了一下,这个函数用的归并排序,最坏的时间复杂度为O(nlog2n)。快排的代码也放在下面了。暴力求解效率太低,考虑先将数组排序,再比较。排序后如果有相同元素,一定是相邻的。嵌套两层循环遍历,如果发现有重复就返回true,否则返回false。缺点:时间复杂度为O(n²),性能不佳,有测试用例超出时间限制。如果数组中每个元素互不相同,返回。转载 2023-04-17 15:56:27 · 49 阅读 · 0 评论 -
数组:删除排序数组中的重复项
leetcode数组转载 2023-04-15 16:47:27 · 70 阅读 · 0 评论 -
数组:旋转数组
链接:https://leetcode.cn/leetbook/read/top-interview-questions-easy/x2skh7/嵌套两层循环,每次将最后一个元素拿到第一个,后面的nums.length-1个元素依次后移一位。要求使用空间复杂度为 O(1) 的。先反转整个数组,再反转前k个,最后反转后面的。,将数组中的元素向右轮转。,有测试用例超出时间限制。来源:leetcode。转载 2023-04-17 11:31:07 · 38 阅读 · 0 评论 -
数组:买卖股票的最佳时机 II
链接:https://leetcode.cn/leetbook/read/top-interview-questions-easy/x2zsx1/由于我们已经能够提前知道每一天股票的价格,那么只要判断出来后一天的价钱比前一天的高,那么我们就执行这次买卖操作,并记录获得的收益。由于我们已经能够提前知道每一天股票的价格,那么只要判断出来后一天的价钱比前一天的高,那么我们就执行这次买卖操作,并记录获得的收益。在每一天,你可以决定是否购买和/或出售股票。你也可以先购买,然后在。来源:LeetCode。转载 2023-04-15 19:28:11 · 73 阅读 · 0 评论