【C语言刷题——Leetcode10道简单题】

举报
平凡的人1 发表于 2022/10/18 12:06:40 2022/10/18
【摘要】 学习语言的过程要多刷题哦

26. 删除有序数组中的重复项

image-20220611141517708 image-20220611141535354

先理解一下题目:请你** 原地** 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致

解题思路:这里可以采用双指针的做法,一个为fast,一个为slow。我们都初始化为0.我们知道,数组是有序的,那么重复的数据是相邻的,比较较 fast和low位置的元素是否相等。刚开始,两个都指向第一个元素,肯定相等,直接让fast++。

遍历循环:
如果相等,fast 后移 1 位。
如果不相等,将++slow的值改为fast,fast 后移 1 位。直到遍历结束。最后在把numsSize置为slow+1.

下面,上手代码:

image-20220611142633457

提交运行:

image-20220611142653978

69. x 的平方根

image-20220611142957437

这道题刚开始一看是觉得应该会挺简单的。不过却有一个坑在这个地方:==由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去== 。所以对于一些算术平方根不是整数的话,如8 的算术平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。所以,所以我们要特殊的处理一下,下面一起来看看我们怎么写的把:

image-20220611143417345

8行代码解决,不过要注意:==为了防止数字溢出的情况,target要定义为long类型。==

提交运行:

image-20220611143530002

287. 寻找重复数

image-20220611150147635

解题思路:排完序之后判断相邻的数是否相等,相等即为重复的数,直接输出即可。比较简单

image-20220611150248314

提交运行:

image-20220611150329189

342. 4的幂

image-20220611151652416

此题可以采用递归做法。这里提供一个非递归的做法:

image-20220611151722340

提交运行:

image-20220611151751575

414. 第三大的数

image-20220611143625978

题目要求很简单,找出第三大的数。如果你没有看示例的话,很可能会直接排序之后输出第三个数。看看示例2和示例3的说明在做。

这可不是通过排序就能直接返回值了,我们可以定义一个计数器来计算第三大的数,等于3之时在输出。然后如果不是等于三的话,就输出最大的数即可。

下面,我们先来一个错误的示范:❌

image-20220611144101282

代码的逻辑没有错,可以准确的输出结果,但是当你提交的时候你会发现:

image-20220611144150376

为什么会这样?

image-20220611144243715

很好理解,当其中一个是负数很小时,另一个是正数很大时,相减就超出了int类型的范围了。所以。在这里,我们为了避免这种情况的出现,直接去比较大小即可。

提交运行:

image-20220611144446630

977. 有序数组的平方

image-20220611145055754

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。

解题思路:直接让原数组进行平方,然后在进行排序即可

image-20220611145153372

提交运行:

image-20220611145211842

1137. 第 N 个泰波那契数

image-20220611153318991

泰波那契数…emm我想到的是斐波那契数,这些名字真有意思啊。找到规律之后并不难,采用迭代的做法即可。

image-20220611153526573

提交运行:

image-20220611153553935

1952. 三除数

image-20220611145257359

直接去计算整数n的整除数是否等于3即可

image-20220611145338859

提交运行:

image-20220611145400771

2057. 值相等的最小索引

image-20220611145528579

直接去遍历一遍数组即可

image-20220611145550243

提交运行:

image-20220611145607867

2235. 两整数相加

image-20220611145651707

我觉得这才应该是leetcode的第一道题把。前面太难了点😥

image-20220611145739612
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。