又又又重新刷题的第一天第一天第一天,这次目标是top100一定要刷完整至少一次两次吧:1/150:两数之和 2/150两数相加 3/150无重复字符的最长字串

news2024/12/26 11:53:05

题目1/150:两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

在这里插入图片描述

解题

第一题仿佛英语单词的abandon,就当开个头,但因为用了太久的Qt,一些关键词竟也不是太熟悉,得快快的温故知新

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        //方法2:用另一个map存储value-index的对应关系
        map<int, int> mapIndex;
        vector<int> res;
        for(int i = 0; i<nums.size(); i++)
        {
            int another = target- nums[i];
            if(mapIndex.find(another) != mapIndex.end())
            {
                res = {i, mapIndex[another]};
                break;
            }
            mapIndex[nums[i]] = i;
        }
        return res;
    }
};

/*
find()用于在map中查找一个键,如果找到,则返回该键对应的值,如果没有,就返回map::end
count()用于统计map中是否出现某个键,返回1或者0

*/



class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        //方法1 暴力两次遍历
        vector<int> res;
        for(int i = 0; i<nums.size(); i++)
        {
            int another = target - nums[i];
            for(int j = i+1; j<nums.size(); j++)
            {
                if(nums[j] == another)
                {
                    res.push_back(i);
                    res.push_back(j);
                    break;
                }
            }
        }
        return res;
    }
};


题目2/150:两数相加

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。

请你将两个数相加,并以相同形式返回一个表示和的链表。

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

在这里插入图片描述

题解

头 尾 进位 但凡有一个链表中有数据 还得创建节点存值

/**
 * 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* addTwoNumbers(ListNode* l1, ListNode* l2) {
       ListNode *newhead = nullptr, *tail = nullptr;
       int carry = 0;
       while(l1 ||l2)
       {
           int n1 = l1 ? l1->val : 0;
           int n2 = l2 ? l2->val : 0;
           int sum = n1+n2+carry;
           if(!newhead)
           {
               newhead = tail = new ListNode(sum%10);
           }else
           {
               tail->next = new ListNode(sum%10);
               tail = tail->next;
           }
           carry = sum/10;
           if(l1)
           {
               l1 = l1->next;
           }
            if(l2)
           {
               l2 = l2->next;
           }
       }
       if(carry > 0)
       {
           tail->next = new ListNode(carry);
       }    

       return newhead;
    }
};

题目3/150:无重复字符的最长字串

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
在这里插入图片描述

题解

第一眼没有思路 浅看题解瞥到”滑动窗口“,

class Solution {
public:
    int lengthOfLongestSubstring(string s) {
        unordered_set<char> occ;
        int n = s.size();
        int rk = -1, ans = 0;
        for(int i = 0; i<n; i++)
        {
            if(i != 0)
            {
                occ.erase(s[i-1]);
            }
            while(rk+1 <n && !occ.count(s[rk +1]))
            {
                occ.insert(s[rk+1]);
                ++rk;
            }
            //直到需要重新左指针右移 即下一个字串
            
            ans = max(ans, rk-i+1);
        }
        return ans;
    }
};

/*
假设我们选择字符串中第K个字符作为起始位置,并且得到了不包含重复字符的最长字串的结束位置为rk
那么当我们选择第K+1个字符作为起始位置时,首先从K+1到rk的字符显然是不重复的,但由于少了原本的第K个字符
我们可以尝试继续增大rk,直到右侧出现了重复字符为止

左右指针:
左指针右移,表示我们开始枚举下一个字符作为起始位置,不断右移右指针,保证中间子串没有重复字符。
需要多一个函数用来表示当前字串是否包含重复字符

=====> 哈希集合:采用哈希表实现,哈希集合中的元素是唯一的,通常用于存储不重复的元素集,以及在数据集中执行查找操作
哈希集合查找、插入、删除的时间复杂度都为O(1)
*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1258832.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智慧工厂人员定位系统源码,融合位置物联网、GIS可视化等技术,实现对人员、物资精确定位管理

智慧工厂人员定位系统源码&#xff0c;UWB高精度定位系统源码 随着中国经济发展进入新常态&#xff0c;在资源和环境约束不断强化的背景下&#xff0c;创新驱动传统制造向智能制造转型升级&#xff0c;越发成为企业生存发展的关键。智能工厂作为实现智能制造的重要载体&#xf…

电商平台为什么要使用CDN加速?

随着电商零售市场的成熟&#xff0c;消费者越来越关注购物体验。电商零售平台的响应速度、稳定性和安全性&#xff0c;均可能直接影响用户购买欲和用户转化率。如何进一步提升用户体验成为电商零售企业在市场决胜的关键。 阿里云全站加速DCDN全球覆盖3200节点&#xff0c;在提…

【知网稳定检索】2024年应用经济学,管理科学与社会发展国际学术会议(AEMSS 2024)

2024年应用经济学&#xff0c;管理科学与社会发展国际学术会议&#xff08;AEMSS 2024&#xff09; 2024 International Conference on Applied Economics, Management Science and Social Development 2024年应用经济学&#xff0c;管理科学与社会发展国际学术会议&#xff…

无公网IP下,如何实现公网远程访问MongoDB文件数据库

文章目录 前言1. 安装数据库2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射2.3 测试随机公网地址远程连接 3. 配置固定TCP端口地址3.1 保留一个固定的公网TCP端口地址3.2 配置固定公网TCP端口地址3.3 测试固定地址公网远程访问 前言 MongoDB是一个基于分布式文件存储的数…

即时电商需求快速爆发,商城系统平台的安全性如何保障?

双11的狂欢刚刚落下帷幕&#xff0c;留下的不仅是消费者的购物满足和品牌商家的销售增长&#xff0c;更让我们看到了一个行业变革的微妙暗示。 回溯这场全民购物的盛大节日&#xff0c;我们不难发现&#xff0c;线下零售品牌在电商巨浪的冲击下&#xff0c;非但没有萎靡&#x…

2023年最值得推荐的数据分析平台,可能是它!

在知乎上&#xff0c;商业数据分析和可视化是热门话题&#xff0c;其中Tableau和PowerBI是讨论最多的两个工具。随着数据分析行业的快速发展&#xff0c;利用这两个工具生成可视化dashboard并进行数据探索分析确实高效便捷。 作为一名数据分析爱好者&#xff0c;我也经常尝试各…

点成案例 | 使用自动细胞计数仪进行酵母细胞计数

一、概述 酵母可用于基础研究、酿造和蒸馏以及食品生产等多种应用&#xff0c;这些应用的全过程都离不开准确的细胞计数和活力测定。事实证明&#xff0c;较小的尺寸和形态对于自动细胞计数仪来说是相当具有挑战性的&#xff0c;利用活体染色剂手动计数酵母的方法繁琐且容易出…

竞赛选题 题目:基于机器视觉opencv的手势检测 手势识别 算法 - 深度学习 卷积神经网络 opencv python

文章目录 1 简介2 传统机器视觉的手势检测2.1 轮廓检测法2.2 算法结果2.3 整体代码实现2.3.1 算法流程 3 深度学习方法做手势识别3.1 经典的卷积神经网络3.2 YOLO系列3.3 SSD3.4 实现步骤3.4.1 数据集3.4.2 图像预处理3.4.3 构建卷积神经网络结构3.4.4 实验训练过程及结果 3.5 …

微软Azure AI新增Phi、Jais等,40种新大模型

微软在官方宣布在Azure AI云开发平台中&#xff0c;新增了Falcon、Phi、Jais、Code Llama、CLIP、Whisper V3、Stable Diffusion等40个新模型&#xff0c;涵盖文本、图像、代码、语音等内容生成。 开发人员只需要通过API或SDK就能快速将模型集成在应用程序中&#xff0c;同时支…

十四、机器学习进阶知识:KNN分类算法

文章目录 1、KNN分类介绍2、KNN分类核心要素3、KNN分类实例1.1 鸢尾花分类1.2 手写数字识别 1、KNN分类介绍 分类是数据分析中非常重要的方法&#xff0c;是对己有数据进行学习,得到一个分类两数或构造出一个分类模型&#xff08;即通常所说的分类器(Classifier))。分类是使用…

亚马逊、eBay店铺如何提升销量转化?掌握测评自养号的技巧

跨境电商随着互联网和物流技术的迅速发展&#xff0c;消费者可以更轻松地借助跨境电商平台在全球范围内进行购物&#xff0c;而提到跨境电商&#xff0c;亚马逊平台是不可忽视。 在竞争激烈的亚马逊市场中&#xff0c;提升销量转化率是每个卖家都追求的目标&#xff0c;高转化…

电源模块测试系统有什么优势?如何助力电源模块高温测试?

可靠性测试是电源模块测试的重要项目之一&#xff0c;以检测电源模块的、质量性能以及长期使用的稳定性。高温操作测试是可靠性测试的常用方法之一&#xff0c;通过电源模块测试系统模拟实际高温工作环境&#xff0c;来检测其工作状态是否正常。 电源模块高温测试方法 电源高温…

负索引和负方向

在python里有序集合的index位置信息可正可负&#xff0c;方向可以从左向右或从右向左。以“python”字符串通过list函数转化生成的列表为例&#xff0c;其正负位置信息index值如下所示&#xff1a; 0 1 2 3 4 5 p y t h o n -6 -5 -4 -3 -2 -1 故&#xff0c;切片的start、end、…

多线激光三维重建

交流联系点击&#xff1a;联系方式

AI写作工具有哪些?盘点最新热门的免费AI写作工具

在AI潮流的巅峰&#xff0c;各种智能工具如雨后春笋般涌现&#xff0c;为我们的创作生活注入了前所未有的活力。AI写作、AI绘画、AI编程、AI视频、AI音频等层出不穷&#xff0c;这其中&#xff0c;值得一提的是几款极具创意的AI写作工具。无论你是繁忙的职场人士、勤奋的学子&a…

MacOS14 Sonoma 安装 Flutter 开发环境

本文针对 小白用户也包括自己&#xff0c;以前都是将这些写入我的有道云笔记。为了让给多人看见或者说自己更好的浏览&#xff0c;先将其记录如下。 朋友介绍一个项目说要开发一款App&#xff0c;最近也是闲着就答应下来。主要功能是通过蓝牙BLE控制设备的一个 Iot边缘设备&…

使用群晖Synology Office提升生产力:如何多人同时编辑一个文件

使用群晖Synology Office提升生产力&#xff1a;多人同时编辑一个文件 正文开始前给大家推荐个网站&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 文章目录 使用群晖Synol…

营销软文怎么写,媒介盒子分享

企业营销落地过程中&#xff0c;高质量的营销文案创作是很多企业的难题&#xff0c;这就导致公司可能投入了大量成本却很难看到回报&#xff0c;今天媒介盒子就来分享&#xff1a;如何打造高质量营销软文。 一、 选题具有吸引力 文案选题等于支撑点&#xff0c;想要写出高质量…

鸿蒙原生应用/元服务开发-AGC分发如何申请发布证书

申请发布证书 发布证书由AGC颁发的、为HarmonyOS应用配置签名信息的数字证书&#xff0c;可保障软件代码完整性和发布者身份真实性。证书格式为.cer&#xff0c;包含公钥、证书指纹等信息。 说明 请确保您的开发者帐号已实名认证。每个帐号最多申请1个发布证书。 1.登录AppGall…

用itbuilder制作漂亮的ER图

更新提示 itBuilder本次升级给大家带来了漂亮的ER图&#xff0c;可以修改背景颜色&#xff0c;修改了连线为专业的ER图连线&#xff0c;鼠标悬停显示高亮相关连线&#xff0c;更直观的了解表关系。 背景色 点击标题的调色板可以调整背景颜色 效果展示 高亮连线 鼠标悬停在某…