Leetcode 0814周总结

news2024/9/23 19:19:24

本周刷题:

88, 108, 121, 219, 228, 268, 283, 303, 349, 350, 414, 448

88 合并两个有序数组

nums1={1, 2, 3 ,0, 0, 0}

nums2={2, 5, 6}

合成效果:nums1={1, 2, 2, 3, 5, 6}

思路:【双指针】对两个数组设置双指针,依次比较哪个小就放入新数组。遍历完之后再把新数组复制给 nums1。

108 将有序数组转换为二叉搜索树

未做。

121 买卖股票的最佳时机

【动态规划】

217. 存在重复元素

数组 nums1={1, 2, 3, 1},任一值在数组中出现至少两次,就返回 true,否则返回 false。

思路:先排序,然后依次遍历。判断当前元素 与 之前元素是否相同,发现相同就返回 true,如果到最后都没相同,则返回 false。

219. 存在重复元素 II

滑动窗口,但是忘记怎么做了,好了仔细回想了一下想起来了 = =

题目:数组nums={1, 2, 3, 1},整数k,判断数组中是否存在两个不同的索引 i 和 j。满足 nums[i] == nums[j],且 abs(i-j) <= k。存在返回true,否则返回false。

思路:【滑动窗口】,使用set设置一个数组,遍历nums数组,先判断是否在st中有,如果没有就将该值加入st(这里使用set不使用vector是可以去重,且可以使用find函数,vector遍历查找会超时)。判断如果st中元素大于k个,就删掉最开始加入的元素(这里set自动排序,要按num指定下标那个数字,或者这里可以使用 unordered_set)。

228. 汇总区间

题目:数组nums={0, 1, 2, 4, 5, 7} 输出效果:["0->2","4->5","7"]

思路:【双指针】【滑动窗口】

设置一个map数组存放区间,先low,再fast++,如果发现 nums[fast] != nums[fast-1] 就把low,fast插入到map中,更新low。

输出再把map集合转到 vector<string> 中int转字符串可以用 to_string() 方法

268. 丢失的数字

题目:给定一个包含 [0, n]n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。

思路:超简单。普通遍历。先排序,遍历,如果哪个和下标不同,就返回该有的那个数字。

283. 移动零

题目:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

示例:输入: nums = [0,1,0,3,12] 输出: [1,3,12,0,0]

思路1:从前往后遍历,遇0删除并计数k,最后在后面插入k个0

思路2:【双指针】left指向零元素,right往后跑,遇到非零元素则交换。交换之后left也要更新。right更新。

303 区域和检索-数组不可变

没看懂题目==

349.两个数组的交集

给定两个数组 nums1nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序

示例:输入:nums1 = [1, 2, 2, 1], nums2 = [2, 2] 输出:[2]

思路:【哈希表】遍历nums1并设置哈希表,再遍历nums2,如果哈希表有值,就说明有。其中有几个细节需要注意(比如不可二次哈希赋值,不可二次插入结果数组)

350. 两个数组的交集 II

题目:请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)

示例:输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2,2]

思路:【双指针,分别指向两个数组】,比较两个数组对应值,然后相同则入栈,不同则自增。

414.第三大的数

给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。

示例:输入:[3, 2, 1] 输出:1 解释:第三大的数是 1 。

思路:设置一个set,遍历时往里面插值,如果大于3,就删除首元素(最小)。

448. 找到所有数组中消失的数字

题目:给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。

示例:输入:nums = [4,3,2,7,8,2,3,1] 输出:[5,6]

思路:【哈希表】,且自身实现哈希表。

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

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

相关文章

transform模型讲解

目录 game是游戏 与北京在一起&#xff1a;冬奥会 transform &#xff1a;encode&#xff0c;decode 12步骤 自注意力机制就是变形金刚的拆解对照&#xff1a;生成零部件V和权重K&#xff0c;前馈神经网络进行权重调节&#xff1a;初步变形 编码器Attention就是考虑上下文信…

Spring学习笔记+SpringMvc+SpringBoot学习笔记

壹、核心概念&#xff1a; 1.1. IOC和DI IOC&#xff08;Inversion of Control&#xff09;控制反转&#xff1a;对象的创建控制权由程序转移到外部&#xff0c;这种思想称为控制反转。/使用对象时&#xff0c;由主动new产生对象转换为由外部提供对象&#xff0c;此过程种对象…

阿里云服务器扩容数据盘/系统盘小记

参考&#xff1a;扩容分区和文件系统&#xff08;Linux&#xff09; 阿里云的教程写的倒是详细&#xff0c;就是太细节&#xff0c;不利于阅读。 1 确认分区数据盘的属性 运行以下命令&#xff0c;确认待扩容云盘及其分区信息。 fdisk -lu设备&#xff1a; ①&#xff1a;云…

线性筛选素数

线性筛选素数 问题 求取范围[2,n] 之间的所有素数 方法一 方法一概述 使用数字prime[i]来标记i是否为素数。初始化prime[2…n]1。 当处理到数字i时&#xff0c;若prime[i]0&#xff0c;则代表2到i-1中有i的因子&#xff0c;因此i为合数&#xff1b;若prime[i]1&#xff0c…

美团——城市低空物流无人机的设计挑战与应对

城市低空物流无人机的设计挑战与应对 强度分析 振动影响 动力设计 噪声设计 冗余备份更加性价比&#xff0c;便宜好实现 航电系统 动力系统的冗余 电池系统的冗余 通讯系统等冗余 降落冗余 安全降落 计算高效 产线标定 底层基础库 离线系统 行业公开测评 未来展望 – 导航定…

C运行时错误——error realloc(): invalid next size

在LeetCode做题时遇到一个运行时错误&#xff0c;将引起问题的原因记录一下备忘&#xff1a; 我们在malloc或calloc等API分配内存时&#xff0c;libc库除了分配给我们在参数中设定大小的内存&#xff08;可能会有内存对齐&#xff0c;实际分配的比参数设定的要多&#xff09;&…

LeetCode算法递归类—二叉树中的最大路径和

目录 124. 二叉树中的最大路径和 - 力扣&#xff08;LeetCode&#xff09; 题解&#xff1a; 代码&#xff1a; 运行结果&#xff1a; 二叉树中的 路径 被定义为一条节点序列&#xff0c;序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该…

STM32驱动OLED显示菜单功能(附带oled硬件iic驱动代码)

while循环里面就写菜单退出 菜单进入 static int flag1; //记录你的选择//if(return_FLAG1)return_FLAG0;OLED_GotoXY(10,0);OLED_Puts("1 LED_TEST",&Font_11x18,1);OLED_GotoXY(10,20);OLED_Puts("2 USART_TEST",&Font_11x18,1);OLED_GotoXY…

传输请求时,如若选择包含其他TR,请留意……

以下是纯顾问群~微信群&#xff1a;SAP干货铺&#xff0c;请联系本人微信 sapliumeng。QQ群 &#xff1a;SAP干货铺&#xff0c; 群号&#xff1a;775662808所有群管理严格&#xff0c;严格禁止一切外来链接、招聘、广告等垃圾信息! 这是之前頔哥在群里说过的一个知识点&#…

谷歌浏览器插件篇之console Importer

前言 作为一名前端开发者&#xff0c;相信在开发实践中&#xff0c;使用过诸多第三方库。譬如&#xff1a;lodash、moment、dayjs、antd等数不胜数。 然每每使用&#xff0c;经起繁琐&#xff0c;便令人有反抗之意。其步骤如下&#xff1a;首先要在搭建好的项目里&#xff0c…

Lnton羚通如何使用OpenCV-Python进行轮廓汇总?

在图像处理和计算机视觉领域&#xff0c;轮廓&#xff08;Contour&#xff09;是指图像中连续的边缘部分形成的曲线&#xff0c;可以看作是物体的外边界或者是物体内部区域的边界。轮廓可以用于对象检测、图像分割、形状匹配等任务。轮廓可以通过在二值化图像中找到图像中白色&…

JDK动态代理与CGLIB动态代理

一、代理模式概述 1.1.生活中代理案例 房屋中介代理 客户手里面没有房源信息&#xff0c;找一个中介 商品代购 这些代购者可以去拿到比较低成本的商品&#xff0c;拥有自己的渠道 1.2.为什么要使用代理 对于消费者而言&#xff0c;可以减少成本&#xff0c;只需要关心自己…

深入理解Linux内核--页高速缓存

页高速缓存 页高速缓存(page cache)是Linux内核所使用的主要磁盘高速缓存。 在绝大多数情况下&#xff0c;内核在读写磁盘时都引用页高速缓存。 新页被追加到页高速缓存以满足用户态进程的读请求。 如果页不在高速缓存中&#xff0c;新页就被加到高速缓存中&#xff0c;然后用…

无涯教程-TensorFlow - Keras

Keras易于学习的高级Python库&#xff0c;可在TensorFlow框架上运行&#xff0c;它的重点是理解深度学习技术&#xff0c;如为神经网络创建层&#xff0c;以维护形状和数学细节的概念。框架的创建可以分为以下两种类型- 顺序API功能API 无涯教程将使用Jupyter Notebook执行和…

ArduPilot开源飞控之飞行模式

ArduPilot开源飞控之飞行模式 1. 源由2. 飞行模式-已实现3. 飞行模式-设计3.1 模式初始化(init)3.2 模式退出(exit)3.3 模式任务(run)3.4 模式切换场景3.4.1 上电初始化3.4.2 EKF FAILSAFE触发3.4.3 do_failsafe_action FAILSAFE触发3.4.4 AP_Avoidance_Copter触发3.4.5 Crash触…

03_缓存双写一致性

03——缓存双写一致性 一、缓存双写一致性 如果redis中有数据&#xff0c;需要和数据库中的值相同如果redis中无数据&#xff0c;数据库中的值要是最新值&#xff0c;且准备回写redis 缓存按照操作来分&#xff0c;可以分为两种&#xff1a; 只读缓存 读写缓存 同步直写操作…

《游戏编程模式》学习笔记(七)状态模式 State Pattern

状态模式的定义 允许对象在当内部状态改变时改变其行为&#xff0c;就好像此对象改变了自己的类一样。 举个例子 在书的示例里要求你写一个人物控制器&#xff0c;实现跳跃功能 直觉上来说&#xff0c;我们代码会这么写&#xff1a; void Heroine::handleInput(Input input…

js简介以及在html中的2种使用方式(hello world)

简介 javascript &#xff1a;是一个跨平台的脚本语言&#xff1b;是一种轻量级的编程语言。 JavaScript 是 Web 的编程语言。所有现代的 HTML 页面都使用 JavaScript。 HTML&#xff1a; 结构 css&#xff1a; 表现 JS&#xff1a; 行为 HTMLCSS 只能称之为静态网页&#xff0…

ajax-axios-url-form-serialize 插件

AJAX AJAX 概念 1.什么是 AJAX ? mdn 使用浏览器的 XMLHttpRequest 对象 与服务器通信 浏览器网页中&#xff0c;使用 AJAX技术&#xff08;XHR对象&#xff09;发起获取省份列表数据的请求&#xff0c;服务器代码响应准备好的省份列表数据给前端&#xff0c;前端拿到数据数…

面试百问:Redis常见的故障以及发生场景

作为一个测试同学&#xff0c;被测系统架构中有使用到redis吗&#xff1f;对redis常见的故障有了解吗&#xff1f;又是如何进行测试的呢&#xff1f; 针对常见的redis面试问题&#xff0c;怎样才算一个高质量的回答呢&#xff0c;回答思路一般包括 问题的类型是什么&#xff…