首页 > 编程语言 >leetcode-数据结构与算法

leetcode-数据结构与算法

时间:2023-02-15 15:11:36浏览次数:54  
标签:ptail ListNode int list1 next 算法 phead 数据结构 leetcode

第0001题:求两数之和

方法一

  1. 思路
  • 暴力破解法,时间复杂度是\(O(n^2)\)
  1. 参考
  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个有序链表

方法一

  1. 思路
  2. 参考
  3. 代码
/**
 * 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对应题号:
  • 力扣-原题链接:请点击此处

方法一

  1. 思路
  2. 参考
  3. 代码

第0004题:

  • leetcode对应题号:
  • 力扣-原题链接:请点击此处

方法一

  1. 思路
  2. 参考
  3. 代码

标签:ptail,ListNode,int,list1,next,算法,phead,数据结构,leetcode
From: https://www.cnblogs.com/kxwslmsps/p/17123125.html

相关文章

  • leetcode:题目1-
    第1题,对应leetcode题目编号:一、题目:xxx1、原题-力扣链接:请点击此处二、思路+代码1、方法一:一、思路二、代码statussList_merge3(mySList*pa,mySList*pb){ if......
  • 联邦GNN综述与经典算法介绍
    作者:京东科技李杰联邦学习和GNN都是当前AI领域的研究热点。联邦学习的多个参与方可以在不泄露原始数据的情况下,安全合规地联合训练业务模型,目前已在诸多领域取得了较好的......
  • js 简单算法学习
    http://liting.ltd/#/algorithm_js/翻转字符串转算法http://liting.ltd/#/js简单算法学习......
  • leetcode - 1250 检查好数组
    检查好数组题目给你一个正整数数组nums,你需要从中任选一些子集,然后将子集中每一个数乘以一个任意整数,并求出他们的和。假如该和结果为1,那么原数组就是一个「好数组」......
  • Unity shader算法收集之缩放uv
    缩放uv算法代码如下:1half2ScaleUVsByCenter(half2uv,floatscale)2{3float2center=float2(0.5,0.5);4return(uv-center)/scale+center;5......
  • 多标签学习算法参考文献汇集笔记
    《多标签学习在智能推荐中的研究与应用》[1]朱峙成,刘佳玮,阎少宏.多标签学习在智能推荐中的研究与应用[J].计算机科学,2019,46(S2):189-193.摘要:  传统的智能......
  • 【LeetCode队列#03】删除字符串中所有的相邻重复项
    删除字符串中所有的相邻重复项力扣题目链接(opensnewwindow)给出由小写字母组成的字符串S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在S上反复执行重......
  • 基于文心大模型套件ERNIEKit实现文本匹配算法,模块化方便应用落地
    文心大模型,产业级知识增强大模型介绍官网:https://wenxin.baidu.com/文心大模型开发套件ERNIEKit,面向NLP工程师,提供全流程大模型开发与部署工具集,端到端、全方位发挥大模......
  • leetcode - 1124 表现良好的最长时间段
    1124.表现良好的最长时间段题目给你一份工作时间表hours,上面记录着某一位员工每天的工作小时数。我们认为当员工一天中的工作小时数大于8小时的时候,那么这一天就是......
  • 【LeetCode队列#02】有效括号
    有效括号力扣题目链接(opensnewwindow)给定一个只包括'(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左......