文章目录提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
- 前言
- 1、合并两个有序列表
- 2、删除有序数组中的重复项
- 3、移除数组nums中值为val的所有元素
- 4、实现字符串函数strstr()
前言
在C++的学习过程中,刷过的题和代码、注释详解,方便日后自己查阅。
1、合并两个有序列表
代码如下:
class Solution {
public:
ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {
if(list1 == NULL)
return list2;
if(list2 == NULL)
return list1;
ListNode *preNode = new ListNode(-1);
ListNode *pre = preNode;
while(list1 && list2)
{
if(list1->val <= list2->val)
{
pre->next = list1;
list1 = list1->next;
}
else
{
pre->next = list2;
list2 = list2->next;
}
pre = pre->next;
}
if(list1 != NULL)
pre->next = list1;
if(list2 != NULL)
pre->next = list2;
return preNode->next;
}
};
2、删除有序数组中的重复项
代码如下:
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if(nums.size() == 0)
return NULL;
int i = 1;
for(int j = i;j < nums.size();j++)
{
if(nums[j] != nums[i-1])
{
nums[i] = nums[j];
i++;
}
}
return i;
}
};
3、移除数组nums中值为val的所有元素
代码如下:
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
if(nums.size() == 0)
return 0;
int left = 0;
for(int right = 0;right < nums.size();right++)
{
if(nums[right] != val)
{
nums[left] = nums[right];
left++;
}
}
return left;
}
};
4、实现字符串函数strstr()
代码如下:
class Solution {
public:
int strStr(string haystack, string needle) {
int haylength = haystack.size();
int needlength = needle.size();
if(needlength == 0)
return 0;
if(haylength < needlength)
return -1;
for(int i = 0;i < haylength - needlength + 1;i++)
{
int j;
for(j = 0;j < needlength;j++)
{
if(haystack[i+j]!=needle[j])
break;
}
if(j == needlength)
return i;
}
return -1;
}
};
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)