当前位置: 首页 > news >正文

Leetcode 0814周总结

本周刷题:

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.lryc.cn/news/132156.html

相关文章:

  • 华为网络篇 OSPF的Silent-Interface-33
  • longtext,bigint是什么数据类型
  • Hive无法启动的解决方案
  • 华为云零代码新手教学-体验通过Astro Zero快速搭建微信小程序
  • 【前端】快速掌握HTML+CSS核心知识点
  • 二叉树算法的框架套路总结
  • 【ARM 嵌入式 编译 Makefile 系列 2 - Makefile 如何打印信息】
  • re学习(34)攻防世界-csaw2013reversing2(修改汇编顺序)
  • centos 7.9 部署django项目
  • 12 正则表达式 | HTTP协议相关介绍
  • 【C语言】数组概述
  • 8. 实现业务功能--用户注册
  • 深入浅出Pytorch函数——torch.nn.init.eye_
  • 版本控制工具Git集成IDEA的学习笔记(第一篇Gitee)
  • 【链表】 61. 旋转链表
  • 深入浅出Pytorch函数——torch.nn.init.kaiming_uniform_
  • 查询Oracle和MySQL数据库中当前所有连接信息
  • Android glide框架及框架涉及到的设计模式
  • 使用yolov5进行安全帽检测填坑指南
  • 【BASH】回顾与知识点梳理(三十二)
  • vscode远程调试PHP代码
  • flink1.17 实现 udf scalarFunctoin get_json_object 支持 非标准化json
  • 基于VUE3+Layui从头搭建通用后台管理系统(前端篇)九:自定义组件封装下
  • 设计模式详解-装饰器模式
  • Android5:活动生命周期
  • 第2章 数据结构和算法概述
  • WPF国际化的实现方法(WpfExtensions.Xaml)
  • 【Linux】—— 进程程序替换
  • idea创建javaweb项目,jboss下没有web application
  • 广东灯具3D扫描抄数建模服务3D测绘出图纸三维逆向设计-CASAIM