第0001题:求两数之和
- leetcode对应题号:1
- 力扣-原题链接:[请点击此处](https://leetcode.cn/problems/two-sum/ "请点击此处")
方法一
- 思路
- 暴力破解法,时间复杂度是\(O(n^2)\)
- 参考
- 代码
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target)
{
vector<int> mysum;
int size=nums.size();
int flag=0; ///< 0时标志未找到符合要求的2个元素,1时表示找到
for(int i=0;i<size-1;++i)
{
for(int j=i+1;j<size;++j)
{
if(nums[i]+nums[j]==target)
{
mysum.push_back(i);
mysum.push_back(j);
flag=1;
break; ///< 只要找到,立即跳出内循环,且flag置1表示找到
}
continue;
}
if(flag==1)
{
break; ///< 找到了,同时跳出外层循环
}
}
return mysum; ///< 返回容器
}
};
第0002题:合并2个有序链表
- leetcode对应题号:21
- 力扣-原题链接:请点击此处
方法一
- 思路
- 参考
- 代码
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* mergeTwoLists(ListNode* list1, ListNode* list2)
{
ListNode* phead=new ListNode(); // 创建头结点
ListNode* ptail=phead; // 尾指针,指向头结点
while(list1!=nullptr&&list2!=nullptr)
{
if(list1->val<list2->val)
{
ptail->next=list1;
list1=list1->next;
ptail=ptail->next;
}
else
{
ptail->next=list2;
list2=list2->next;
ptail=ptail->next;
}
}
if(list1!=nullptr)
{
ptail->next=list1;
//ptail=phead->next;
//delete phead;
//return retrun ptail;
}
if(list2!=nullptr)
{
ptail->next=list2;
//ptail=phead->next;
// delete phead;
//return retrun ptail;
}
ptail=phead->next;
delete phead;
return ptail;
}
};
第0003题:
- leetcode对应题号:
- 力扣-原题链接:请点击此处
方法一
- 思路
- 参考
- 代码
第0004题:
- leetcode对应题号:
- 力扣-原题链接:请点击此处
方法一
- 思路
- 参考
- 代码
标签:ptail,ListNode,int,list1,next,算法,phead,数据结构,leetcode
From: https://www.cnblogs.com/kxwslmsps/p/17123125.html