![](https://i-blog.csdnimg.cn/direct/4beb123b0d9f4437a96409a91206ffe9.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
力扣练习题
力扣练习题
笛秋白
不想学计算机但是学的还行的大学生......
展开
-
6.删排序数组中的重复项
使用快慢指针的方式,双指针分别为 slow 和 fast,开始时都指向第一个元素。fast 指针向后遍历数组,如果发现不重复的元素,就将它移到 slow 指向的位置,然后 slow 指针右移一位。这段代码实现了原地删除重复元素,并保持了相对顺序。最后返回的 slow + 1 即为唯一元素的个数。原创 2024-08-06 20:55:23 · 159 阅读 · 0 评论 -
for(char c:s),std::vector<int> numbers 和std::int numbers[],.size()和.sizeof()区别
在C++的标准库容器(如std::vector, std::array, std::string等)中,用于获取容器中元素的数量的方法是.size()。:std::vector是一个动态大小的容器,可以在运行时动态添加或删除元素。例如,sizeof(int)将返回int类型的大小(通常是4个字节),而sizeof(numbers)将返回numbers数组的总大小(以字节为单位)。如果需要动态大小的数组,应该使用动态分配的数组或者std::vector。例如,对于std::vector numbers;原创 2024-08-06 20:46:56 · 487 阅读 · 0 评论 -
5. 有效的括号
一个很标准的关于栈知识点的应用,首先先初始化一个栈,再遍历字符串s,当匹配到为左边字符串是将其压入栈中,遇到右边字符串时要判断此时的栈顶元素是否与其匹配,若匹配则将栈顶元素弹出,若不匹配则报错即可。原创 2024-08-05 19:50:47 · 251 阅读 · 0 评论 -
4. 最长公共前缀
首先要对字符串数组进行分析,字符串数组元素的最长公共前缀肯定不会超过最小元素长度,并如存在公共前缀则需遍历整个字符串元素,有点像二维数组,最后加上截取字符串加上判空操作就完成啦!原创 2024-08-04 21:06:37 · 259 阅读 · 0 评论 -
3.罗马数字转数字
基础思路是先想到键值对,然后遍历字符串利用键值对匹配来计算值,要注意处理IV,IX之类需要将当前处理字符与前一个字符进行比较。原创 2024-08-03 21:41:08 · 170 阅读 · 0 评论 -
2.回文数
对于数字 1221,如果执行 1221 % 10,我们将得到最后一位数字 1,要得到倒数第二位数字,我们可以先通过除以 10 把最后一位数字从 1221 中移除,1221 / 10 = 122,再求出上一步结果除以 10 的余数,122 % 10 = 2,就可以得到倒数第二位数字。由于整个过程我们不断将原始数字除以 10,然后给反转后的数字乘上 10,所以,当原始数字小于或等于反转后的数字时,就意味着我们已经处理了一半位数的数字了。现在的问题是,我们如何知道反转数字的位数已经达到原始数字位数的一半?原创 2024-08-02 19:53:28 · 332 阅读 · 0 评论 -
1. 两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。法2.如果限制时间复杂度小于n*n的话,可以尝试利用哈希表,本题主要在于寻找target-x的值,利用哈希表完成快速寻找数组中是否存在目标元素。法1.直接遍历这个数组,时间复杂度为n*n。原创 2024-08-01 22:02:10 · 262 阅读 · 0 评论