?作者:@平凡的人1
?专栏:《小菜鸟爱刷题》
?一句话:凡是过往,皆为序章
?说明: 过去无可挽回, 未来可以改变
今天是考四六级的日子,不知道大家考得怎么样呀?(反正我是寄了,好多没明白)😥
我相信你们应该都考得很好吧!💖
不说那么多了,同样的,趁现在有一点点的空闲时间写这篇博客把。今天这篇博客的主题是:Leetcode刷题。分享 的过程也方便自己的复习。快期末了,更新的速度自然也就慢下来了,希望大家一起加油进步。🌹**如果觉得不错的话,记得点赞+收藏哦!**下面,开始我们的内容。
先理解一下题目:请你** 原地** 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。
解题思路:这里可以采用双指针的做法,一个为fast,一个为slow。我们都初始化为0.我们知道,数组是有序的,那么重复的数据是相邻的,比较较 fast和low位置的元素是否相等。刚开始,两个都指向第一个元素,肯定相等,直接让fast++。
遍历循环: 如果相等,fast 后移 1 位。 如果不相等,将++slow的值改为fast,fast 后移 1 位。直到遍历结束。最后在把numsSize置为slow+1.
下面,上手代码:
提交运行:
这道题刚开始一看是觉得应该会挺简单的。不过却有一个坑在这个地方:由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。所以对于一些算术平方根不是整数的话,如8 的算术平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。所以,所以我们要特殊的处理一下,下面一起来看看我们怎么写的把:
8行代码解决,不过要注意:为了防止数字溢出的情况,target要定义为long类型。
提交运行:
解题思路:排完序之后判断相邻的数是否相等,相等即为重复的数,直接输出即可。比较简单
提交运行:
此题可以采用递归做法。这里提供一个非递归的做法:
提交运行:
题目要求很简单,找出第三大的数。如果你没有看示例的话,很可能会直接排序之后输出第三个数。看看示例2和示例3的说明在做。
这可不是通过排序就能直接返回值了,我们可以定义一个计数器来计算第三大的数,等于3之时在输出。然后如果不是等于三的话,就输出最大的数即可。
下面,我们先来一个错误的示范:?
代码的逻辑没有错,可以准确的输出结果,但是当你提交的时候你会发现:
为什么会这样?
很好理解,当其中一个是负数很小时,另一个是正数很大时,相减就超出了int类型的范围了。所以。在这里,我们为了避免这种情况的出现,直接去比较大小即可。
提交运行:
给你一个按 非递减顺序 排序的整数数组 nums ,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。
解题思路:直接让原数组进行平方,然后在进行排序即可
提交运行:
泰波那契数…emm我想到的是斐波那契数,这些名字真有意思啊。找到规律之后并不难,采用迭代的做法即可。
提交运行:
直接去计算整数n的整除数是否等于3即可
提交运行:
直接去遍历一遍数组即可
提交运行:
我觉得这才应该是leetcode的第一道题把。前面太难了点😥
总结
本次主要内容是10道leetcode 的简单题,不知道你学会了没有。由于最近在准备期末考试,更多的内容得等到暑假在慢慢更新把。如果觉得有错误的地方,还请私底下多教教我呀。希望我们能够一起进步,就先到这里结束了。🌹
|