菜鸡刷题-1

2023-11-07

很久不刷题了,再次刷题手太生了,痛定思痛,还是继续刷吧,立帖为证,天天坚持

217. 存在重复元素

给定一个整数数组,判断是否存在重复元素。

如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。

解题思路;

1.排序,则若有重复会出现在相邻位置,扫描数组,比较相邻位置元素是否相等

  • 获取vector长度用size()
class Solution {
public:
    bool containsDuplicate(vector<int>& nums) {
       sort(nums.begin() , nums.end());
       int n = nums.size();
       for(int i = 0; i < n -1; i++){
            if(nums[i] == nums[i+1])return true;
       }
       return false;
    }
};

2.哈希,建立哈希表,若该元素未出现则插入,若出现过则返回true

  • set自带去重
  • 可以用find(X)找到X的位置
  • 插入用insert
class Solution {
public:
    bool containsDuplicate(vector<int>& nums) {
       unordered_set<int> num1;
       int n = nums.size();
       for(int i = 0; i < n; i++){
           if(num1.find(nums[i]) != num1.end()){
               return true;
           }
           else
           num1.insert(nums[i]);
       }
        return false;
    }
};

53. 最大子序和 - 力扣(LeetCode) (leetcode-cn.com)

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

解题思路:

1.动态规划

扫描数组,每次求当前位置的最大和,以dp[i]表示以nums[i]结尾的最大子序列和,也就是dp[i] = max(dp[i] + dp[i-1], dp[i]),dp[0] = nums[0]

  • vector<int> dp(n)定义长度为n的数组
class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int n = nums.size();
        if(n < 2)return nums[0];
        vector<int> dp(n);
        dp[0] = nums[0];
        int result = dp[0];
        for(int i = 1; i < n; i++){
            dp[i] = max(nums[i] + dp[i-1], nums[i]);
            result = max(result, dp[i]);
        }return result;
    }
};

2.贪心

从左向右迭代,一个一个加计算sum和,如果sum和小于0,那么重新开始加,因为若sum<0,那么加sum无意义,重新计算sum

class Solution {
public:
    int maxSubArray(vector<int>& nums) {
       int sum = 0;
       int n = nums.size();
       if (n < 2)return nums[0];
       int result = INT_MIN;
       for(int i = 0; i < n; i++){
           sum += nums[i];
           result = max(sum, result);
           if(sum < 0)sum = 0;
       }return result;
    }
};

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

菜鸡刷题-1 的相关文章

随机推荐

  • 【uniapp】如何手动实现让input文本框聚焦

    开发中遇到一个问题 希望在每次操作页面完成后 input文本框都能自动聚焦 那么问题来了 应该怎么做 接下来请继续往下看 也许大多数同学都会这么做 尝试过修改文本框属性focus为 true 但是没有效果 参考如下
  • 关于项目内浏览器限制问题(VUE)

    目的 限制项目在某些浏览器中打开 代码位置如图 1 获取用户代理 navigator userAgent 拓展 属性 输出值 navigator appCodeName 浏览器代号 Mozilla navigator appName 浏览器
  • 分享一个电脑中病毒(无限一分钟后重启)的解决方法。

    常在河边走 哪有不湿鞋 很好计算机中毒了 情况如下 拖慢开机速度 很慢 很慢 开机后提示 你的电脑将在一分钟后重启 无限次数 解决方法 进入安全模式 以管理员方式打开CMD 命令如下 netsh winsock reset catalog
  • std::vector中swap()函数使用解析以及去重复操作

    1 常用方式 交换vector内部的两个元素 int main int argc char argv std vector
  • 磁盘操作--分区大于2T的硬盘

    一 说明 分区大于2TB的硬盘 云上操作 基于linux系统 Linux parted GPT ext4或xfs 步骤如下 1 分区类型为gpt 2 创建主分区 3 查看是否对其 4 重读分区表 5 创建文件系统 6 挂载目录 二 分区硬盘
  • R语言实验报告【全集】

    若对你有帮助 记得点赞 关注我哦 7个实验 R语言环境安装 R语言包的安装 创建和使用R语言数据集 数据的导入导出 R语言数据的清洗 高级数据管理 基本统计分析和函数与包实验 其实是两个实验 内容较长 本实验是在我同学做的云平台上运行的 所
  • mysql binlog 目录_怎么查看mysql 的binlog日志存放的位置(linux和win)

    这个你可以看配置文件 启用了才有这样的记录默认是没有的 linux系统中的 etc my cnf my cnf内容 log bin mysqlbin 默认配置 比如上面的设置重启数据库会生成mysqlbin 000001文件 常用的命令 1
  • 在虚拟机ubuntu64位系统中配置jdk

    在虚拟机ubuntu64位系统中配置jdk 第一步 下载jdk 第二步 新建一个文件夹后将压缩包解压到这个文件中 第三步 任意地方打开一个终端 这里在桌面打开 第四步 将系统的配置文件备份 第五步 在终端中打开配置界面 第六步 检查配置是否
  • antd pro mock数据方法

    export default POST api aaa bbbbb req res gt send里是mock数据返回的数据结构 res send code 200 data steps 2 downFile name 需求 url htt
  • 视觉注意力收集

    参考博文 神经网络学习小记录64 Pytorch 图像处理中注意力机制的解析与代码详解 pynq 注意力机制 Bubbliiiing的博客 CSDN博客 计算机视觉 详解 自注意力 Non local 模块与 Self attention
  • 概率论与数理统计(一)

    本文主要讲了什么是事件 事件与概率的关系 事件常见的分类 事件的基本关系及运算 什么是条件概率以及由条件概率引出的事件独立性 由事件独立性引出来的概率0乘法定理 概率的三条公理 文章目录 事件与概率 概率的三条公理 事件的关系与运算 条件概
  • Postman传入的Date参数类型

    需要定义全局变量 postman setGlobalVariable time Date parse new Date 2020 11 11 00 00 00 进行引用 time time
  • DX杂记之细分着色器和利用贝塞尔曲面平滑模型

    细分着色器的构成 细分着色器是为了将一大块的区域继续划分 划分成很多的小块 大体上由三部分构成 但也会涉及一些其它阶段的内容 这三个阶段分别为 Hull Shader Stage Tesslator Stage Domain Shader
  • Day3: 前端路由(基础篇)

    目标 持续输出 每日分享关于web前端常见知识 面试题 性能优化 新技术等方面的内容 主要面向群体 前端开发工程师 初 中 高级 应届 转行 培训等同学 Day3 今日话题 想必大家经常会在面试中或者工作生活中听到 前端路由 相关的问题或者
  • Training a deep autoencoder or a classifier on MNIST digits_Rbm训练(Matlab)

    这是第一次阅读matlab版的RBM程序所做的笔记 其中有好多没有理解的地方 希望能跟各位博友一起学习 一起研究 一起讨论 共同进步 一 Rbm阅读材料 http en wikipedia org wiki Restricted Boltz
  • statsmodels 0.10.0中文文档

    为什么翻译 本人会计出身 转行数据分析 更多是用excel sql spss等工具 30岁开始入坑python 在学习statsmodels包的过程中 在知乎 百度 CSDN和github上均没有找到statsmodels的中文文档 一开始
  • 自然图像目标检测数据集汇总

    参考 自然图像目标检测数据集汇总 云 社区 腾讯云 目录 一 PASCAL VOC 1 Challenge and tasks 2 Dataset 3 Detection Ground Truth 4 Evaluation 二 ImageN
  • 测试离线音频转文本模型Whisper.net的基本用法

    微信公众号 dotNET跨平台 中的文章 OpenAI的离线音频转文本模型Whisper的 NET封装项目 介绍了基于 net封装的开源语音辨识Whisper神经网络项目Whisper net 其GitHub地址见参考文献2 本文基于Whi
  • springMvc 自定义注解以及自定义异常处理

    上一篇写到自定义错误处理 那么有这么个需求 如果每个模块需要错误处理页面不同 那么上面一篇写死为error jsp就不合理了 所以就需要我们想跳哪个错误页面就哪个页面 这样就灵活多了 我采用自定义注解的方式了指定我们需求跳转的错误页面 具体
  • 菜鸡刷题-1

    很久不刷题了 再次刷题手太生了 痛定思痛 还是继续刷吧 立帖为证 天天坚持 217 存在重复元素 给定一个整数数组 判断是否存在重复元素 如果存在一值在数组中出现至少两次 函数返回 true 如果数组中每个元素都不相同 则返回 false