leetcode刷题

简介: 学习语言的过程也要及时去刷题呀

好的,各位,我们废话不说哈,直接开刷💖

27. 移除元素

题目的意思很简单:就是给你一个数val,把数组nums中值为val的数给删掉,而且不能自己使用额外的空间,空间复杂度要求为O(1),原地修改数组。实质上并没有那么难,我们可以尝试着来做一下。

解题思路:我们可以定义两个变量来作为数组的下标,利用其中一个变量去遍历数组,判断是否等于val,把不是的数放在另一个变量作为下标的同一个数组中。这样就避免了开辟新的数组,下面直接上手我们的代码:

提交运行:

35. 搜索插入位置

首先,这道题有一个点:一个排序数组。这说明这个数组是排序好的了(当然如果没有排序的话你也可以自己排序),在前期阶段,说到有序数组,我们想到的自然是二分查找了。然后要找目标值,返回下标,没有的话要找插入的位置。

解题思路:二分查找。可以利用二分查找思想的做法。首先数组是排序好的了,而且时间复杂度也满足题意,直接敲代码:

提交运行:

507. 完美数

有了完美数的定义之后,我们自然理解了什么是完美数,解题思路也就来了。

解题思路:计算出所有的正因子相加起来判断是不是等于原来的值即可

提交运行:

693. 交替位二进制数

简单来说,就是叫你判断二进制表示中相邻两位的数字是否相同。

解题思路:我们只要让n&1,算出最后一位,然后再让n>>1,算出倒数第二位。然后判断是否相等即可,下面,让我们用代码来实现这个过程:

提交运行:

emm,通过就行!

771. 宝石与石头

这道题起的名字是真的挺有意思的,不知道你是否也这样认为,这道题也不难。不要被名字给唬住了。

解题思路:直接通过遍历的做法让两个字符串一一匹配即可,通过计数器,如果相等,计数器就+1,最后返回计算器的值即可

提交运行:

…我也没想到执行用时:0 ms, 在所有 C 提交中击败了100.00%的用户.

剑指 Offer 03. 数组中重复的数字

目的很简单:就是让你找出数组中重复的数字,我们该怎么去找呢?同时,我们也不知道重复的数字重复了多少次,但是返回的结果可以只是其中的一个重复数字即可。

这里提供一种做法:通过调用qsort函数将数组排序,然后判断相邻的元素是否相等即可。下面,我们一起来看一看代码:(这里要注意一个点:那就是要看看数组是否越界了!)

提交运行一下:

796. 旋转字符串

非常有意思的一道题目,刚开始一上来就想着将所有旋转后的结果放到一个数组里,然后进行查找。但是你会发现这种做法既不好操作,也太费事,所以我们改变一下策略:

解题思路:举个例子,拿ABCDE来说,其实ABCDE无论怎么旋,旋转后的所有结果,都包含在了ABCDEABCD这个字符串里了。所以做法很简单,只需要将原字符串再来一遍接在后面,然后找一找待查找的字符串是不是两倍原字符串的子集即可。同时,我们要先去判断字符串长度是否相等,通过调用strcpy函数、strcat函数、strstr函数即可轻松解决本题,下面一起来看看我们的代码:

提交运行:

ok,完美收工。


总结

通过以上的7道leetcode小题,不知道对你是否有所启发与帮助。还是那三个字:多练习。不要好高骛远,要夯实自己的基础,多多总结,这总是有好处的,熟能生巧嘛,最后,这次刷题就先到这里结束了,觉得不错的话,也可以点个赞哦!🌹


相关文章
|
9天前
|
索引
【力扣刷题】两数求和、移动零、相交链表、反转链表
【力扣刷题】两数求和、移动零、相交链表、反转链表
17 2
【力扣刷题】两数求和、移动零、相交链表、反转链表
|
9天前
|
算法
"刷题记录:哈希表+双指针 | leetcode-2465. 不同的平均值数目 "
该文段是一篇关于编程题目的解答,主要讨论如何找到数组中所有不同平均值的个数。作者首先使用排序和哈希集来解决,将数组转为列表排序后,通过双指针计算平均值并存入哈希集以去重。然后,作者发现可以优化方案,通过双指针在排序后的数组中直接计算两数之和,用哈希集记录不重复的和,从而避免实际计算平均值,提高了算法效率。最终代码展示了这两种方法。
17 0
|
9天前
|
索引
【力扣刷题】删除链表的倒数第 N 个结点、两两交换链表中的节点、随机链表的复制
【力扣刷题】删除链表的倒数第 N 个结点、两两交换链表中的节点、随机链表的复制
15 0
|
9天前
|
存储 算法 索引
【力扣刷题】只出现一次的数字、多数元素、环形链表 II、两数相加
【力扣刷题】只出现一次的数字、多数元素、环形链表 II、两数相加
21 1
|
9天前
【力扣刷题】二叉树的中序遍历、二叉树的最大深度、翻转二叉树、对称二叉树
【力扣刷题】二叉树的中序遍历、二叉树的最大深度、翻转二叉树、对称二叉树
17 0
|
9天前
|
索引
【力扣刷题】数组实现栈、后缀表达式(逆波兰表达式)求值、中缀表达式转换为后缀表达式(无括号&&有括号)
【力扣刷题】数组实现栈、后缀表达式(逆波兰表达式)求值、中缀表达式转换为后缀表达式(无括号&&有括号)
14 0
|
9天前
|
索引
【力扣刷题】回文链表、环形链表、合并两个有序链表
【力扣刷题】回文链表、环形链表、合并两个有序链表
15 0
|
12天前
|
算法 索引
力扣刷题【第一期】
这是一个关于算法的总结,包含7个不同的问题。1)爬楼梯问题,使用动态规划,通过迭代找到到达n阶楼梯的不同方法数。2)两数之和,通过双重循环找出数组中和为目标值的两个数的索引。3)移动零,使用双指针将数组中的0移到末尾。4)合并有序链表,创建新链表按升序合并两个链表。5)删除链表重复值,遍历链表删除重复元素。6)环形链表检测,使用快慢指针判断链表是否有环。7)相交链表,计算链表长度找
17 1
|
12天前
|
存储 Java
JAVA数据结构刷题 -- 力扣二叉树
JAVA数据结构刷题 -- 力扣二叉树
18 0
|
21天前
|
算法 C++
【刷题】Leetcode 1609.奇偶树
这道题是我目前做过最难的题,虽然没有一遍做出来,但是参考大佬的代码,慢慢啃的感觉的真的很好。刷题继续!!!!!!
15 0