代码随想录算法训练营第七天|哈希表理论基础,454.四数相加II ,383. 赎金信 ,15. 三数之和 ,18. 四数之和

刷题建议

刷题建议与debug

  1. 代码随想录目前基本都有了视频讲解,一定要先看视频,事半功倍。
  2. 写博客,将自己的感悟沉淀下来,不然会忘
  3. 大家提问的时候,记得要把问题描述清楚,自己在哪一步遇到了问题,做了哪些调试,而不要只是把代码甩出来,这样方便大家帮忙快速定位问题。

博客内容:(博客记录以及打卡格式)

今日学习文章链接和视频链接

Python菜鸟教程

哈希表理论基础

大家要了解哈希表的内部实现原理,哈希函数,哈希碰撞,以及常见哈希表的区别,数组,set 和map。

  1. hash表(散列表)一般哈希表都是用来快速判断一个元素是否出现集合里
  2. hash函数:通过hashCode把名字转化为数值
  3. hash碰撞:小李和小王都映射到了索引下标 1 的位置,这一现象叫做哈希碰撞,解决方法有线性探测法和拉链法
  4. hash结构:比如字典,集合等()了解原理
  5. 用法:空间换时间,当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。
    在这里插入图片描述

454.四数相加II

自己看到题目的第一想法

  1. 暴力破解==》明显不行,应该会超时

看完代码随想录之后的想法

  1. n的四次方是不能接受的,那么可以将a+b的值作为一个整体,遍历后存入map,map的key是value,map的值是出现的次数,这相当于巧妙利用Hash
  2. 然后遍历C和D,如果0-(c+d)在map中出现过的话,那么它出现的次数为x,count += x
  3. return count

自己实现过程中遇到哪些困难

  1. 字典默认为空,不是0,所以要单独判断,如果n1 + n2不在hashmap里面,hashmap[n1+n2] = 1

相关题目

383. 赎金信

自己看到题目的第一想法

  1. hashmap,key是字符,value是出现的次数

看完代码随想录之后的想法

  1. 思路正确,但是字典操作错误
  2. 可以用数组,因为都是小写字母
  3. 注意先遍历谁,想清楚

15. 三数之和

自己看到题目的第一想法

  1. 应该是要用Hash,遍历a和b,放在hashmap里面,最后c=-a-b
  2. hashmap[-a-b]是否存在,但是需要去重,abc都需要去重
  3. 无思路

看完代码随想录之后的想法

  1. 先排序,从小到大排序
  2. 关键逻辑在于去重
  3. 双指针思路->遍历i,left=i+1,right=size-1,后left和right相向移动,left不能等于right(题目要求,i,left和right不相等)
  4. 在拿到一个三元组后要对right和left进行去重

自己实现过程中遇到哪些困难

  1. 不明确在找到第一个三元组后,代码上怎么对left和right进行去重

今日收获,记录一下自己的学习时长

  1. 遇到问题:看下描述除了暴力,能否用Hash和双指针解决?Hash的话选择数组,set还是dict?
  2. 如果先排序的话是否能够更加容易解决问题
  3. 注意循环结束条件,边界条件,如何去重
  4. 注意这里能用双指针法因为需要的是value,需要排序,但是拍完序后索引就乱了,所以如果需要索引的,不能用这种思路

18. 四数之和

自己看到题目的第一想法

看完代码随想录之后的想法

自己实现过程中遇到哪些困难

今日收获,记录一下自己的学习时长

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

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

相关文章

记录一个Insert姿势引起的MySQL从库上查不到数据的问题

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 问题描述: 某测试环境的MySQL用了两台节点,主从同步结构。忽然有研发同学反映说MySQL的主从不同步了。他…

大数据技术原理与应用期末复习(林子雨)

大数据技术原理与应用期末复习(林子雨) Hadoop的特性HBase编程实践NoSQL的四大类型键值数据库优点:缺点: 列族数据库优点:缺点: 文档数据库优点:缺点: 图数据库优点:缺点…

超声波眼镜清洗机清洗眼镜会有伤害吗?适合洗眼镜超声波清洗机

眼镜作为日常生活中不可或缺的辅助视力工具,经常需要清洁保养以确保视力清晰和舒适佩戴。随着科技的发展,超声波眼镜清洗机成为越来越受欢迎的清洁方式。然而,很多人可能会担心使用超声波清洗机是否会对眼镜造成损害。但是可以很可以的告诉大…

设计模式——原型模式(Prototype Pattern)

概述 原型模式(Prototype Pattern):使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式是一种对象创建型模式。原型模式的工作原理很简单:将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象…

C1-3.4 多个样本的向量化

C1-3.4 多个样本的向量化 1、为什么要用样本的向量化呢? 总结一句话:计算方便 下图是神经网络计算的步骤,右侧 是有一个输入变量a[0](什么是X呢,因为输入层有三个神经元,说明有三个输入变量,…

15 个适用于 Windows 的 PDF 解锁工具大全

PDF(便携式文件格式)是一种文件格式,用于呈现和交换任何独立于任何软件、硬件或操作系统的可靠访问的文档。Adobe 发明了它,但现在它是由国际标准化组织 (ISO) 维护的开放标准。因此,您现在必须了解这些 PDF 解锁工具。…

【随笔】遗传算法优化的BP神经网络(随笔,不是很详细)

文章目录 一、算法思想1.1 BP神经网络1.2 遗传算法1.3 遗传算法优化的BP神经网络 二、代码解读2.1 数据预处理2.2 GABP2.3 部分函数说明 一、算法思想 1.1 BP神经网络 BP神经网络(Backpropagation Neural Network,反向传播神经网络)是一种监…

Linux第21步_取消鼠标中键的复制粘贴功能

在ubuntu18.04操作系统中,选中文本后,若按下鼠标中键,就可以执行复制粘贴,相当于 CtrlshiftC 后又按了 CtrlshiftV。在Linux系统中,基本上都是这么配置的。在windows系统中,我们习惯用Ctrl-C复制&#xff0…

普通人想通过抖音赚钱要先知道这4点

1.变现方式 想做抖音首先要想好变现路径以及通过什么方式变现。做抖音就是在经营某一类人群,因为人群绑定了精准标签,系统推送的精准又绑定了变现。所以要明确你经营的目标人群是谁,你在做谁的生意,你要赚谁的钱。他们的年龄、收…

OpenCV-Python的版本介绍及区别

OpenCV-Python版本介绍 OpenCV-Python有多个版本,每个版本都有其特定的功能和改进。以下是一些常见OpenCV-Python版本及其介绍和区别: OpenCV-Python 2.x版本 这是OpenCV-Python的旧版本,支持Python 2.x。它包含了许多传统的计算机视觉功能&…

可盐可甜的红色马甲背心

膨体棉腈面料不易皱,搭配阿兰花菱形镂空设计 真的绝绝子,红色吸睛又美观 随便搭配一件衬衫去穿,自带文艺气息 氛围感直接拉满 出街拍照很出片,时髦又气质 女孩子的甜美,温柔等都可以突显 有喜欢的可以尝试一下哟…

超维空间M1无人机使用说明书——61、ROS无人机物体识别与精准投放

引言:基于空中物流的项目背景。我们提供了使用基于诗句的物体识别和精准投放、降落。实现原理如下: 1、在ROS下使用机载电脑实现物体识别 2、记载电脑根据反馈的位置发布运动控制指令 3、PX4解析机载电脑发布的命令,作出运动控制 4、设置…

Docker与微服务实战(高级篇)- 【上】

Docker与微服务实战(高级篇)- 【上】 一、Docker复杂安装详说1.1 Mysql主从复制--原理-【尚硅谷Mysql高级篇】1.2 Mysql主从复制--【一主一从】搭建步骤1.2.1新建--【主服务器】--容器实例--33071.2.2.进入/app/mysql-master/conf目录下新建my.cnf1.2.3.…

【算法】简单的二分查找算法

一个简单的二分查找算法&#xff1a; import java.util.Arrays; public class BinarySearch {public static int rank(int key,int[] a){int lo0;int hia.length-1;while (lo<hi){int midlo(hi-lo)/2;if (key<a[mid])himid-1;else if (key>a[mid])lomid1;else return …

嵌入式linux 编译qt5(以v851s为例)

本文参考Blev大神的博客&#xff1a;Yuzuki Lizard V851S开发板 --移植 QT5.12.9教程&#xff08;群友Blev提供&#xff09; - Allwinner / 柚木PI-V851S - 嵌入式开发问答社区 (100ask.net) 一. 环境准备 1.下载qt5源码&#xff1a;Open Source Development | Open Source …

【Maven】001-Maven 概述

【Maven】001-Maven 概述 文章目录 【Maven】001-Maven 概述一、Maven 概述1、为什么学习 MavenMaven 作为依赖管理工具Maven 作为构建工具其它 2、Maven 介绍3、Maven 软件工作模型图 一、Maven 概述 1、为什么学习 Maven Maven 作为依赖管理工具 依赖管理&#xff1a; Mave…

IDEA集成Gitee(码云)

文章目录 创建新仓库&#xff0c;存放项目拉取Gitee上的项目 1、安装插件 Idea默认不带码云插件&#xff0c;我们第一步要安装Gitee插件。 如图所示&#xff0c;在Idea插件商店搜索Gitee&#xff0c;然后点击右侧的Install按钮。 2、Settings>Version Conttol>Gitee 这里…

数据分析基础

数据运营的概念及意义 数据分析的三个维度 数据总览的作用及提升方法 数据总览的作用及提升方法 数据总览的作用及提升方法小结 影响作品数据的关键因素 影响作品数据的关键因素小结 用户数据的意义与作用 用户数据分析的方法与操作 用户数据分析的方法与操作小结 数据运营小结…

数据仓库 Apache Hive

一、数据分析 1、数据仓库 数据仓库&#xff08;英语&#xff1a;Data Warehouse&#xff0c;简称数仓、DW&#xff09;&#xff0c;是一个用于存储、分析、报告的数据系统。 数据仓库的目的是构建面向分析的集成化数据环境&#xff0c;分析结果为企业提供决策支持&#xff08…

Unity 编辑器篇|(四)编辑器拓展GUI类 (全面总结 | 建议收藏)

目录 1. 前言2. 参数2.1 静态变量2.2 静态函数2.3 委托 3. 功能3.1 按钮&#xff1a;Button、RepeatButton3.2 文本&#xff1a;Label 、TextField 、TextArea 、PasswordField3.3 滑动条&#xff1a;HorizontalScrollbar 、VerticalScrollbar3.4 滑条&#xff1a;VerticalSlid…