首页 > 其他分享 >代码随想录Day6

代码随想录Day6

时间:2023-05-20 12:12:42浏览次数:40  
标签:map set hash 数组 Day6 代码 随想录 哈希 复杂度

链表的复习章节

 


 

哈希的概念和应用:https://programmercarl.com/哈希表理论基础.html#哈希函数

当我们想使用哈希法来解决问题的时候,我们一般会选择如下三种数据结构。

  • 数组
  • set (集合)
  • map(映射)

这里数组就没啥可说的了,我们来看一下set。


 

Leetcode 242

时间复杂度 O(N)

空间复杂度O(1)

原本这道题我也使用的是hash表的形式进行解决,对比了这次的推荐答案,可以看出,推荐答案中的空间复杂度明显降低了。使用26个字母作为hash以外, 还有一个重要的点是在对于t检查时使用--的形式,最后进行判断是否全部为0.


 

leetcode349

可以用set来解决问题,对比两个数组中的元素的差异性。 尝试用java写代码

先用set存储nums1中的那些元素,然后用nums2进行比对,将出现过的放置在数组中并进行return。

Java中的stream很有意思, 一个个转换的格式 A.stream().mapToInt(x->x).toArray()

 

拓展

那有同学可能问了,遇到哈希问题我直接都用set不就得了,用什么数组啊。

直接使用set 不仅占用空间比数组大,而且速度要比数组慢,set把数值映射到key上都要做hash计算的。

不要小瞧 这个耗时,在数据量大的情况,差距是很明显的。根据题目描述可以使用1005左右的数组进行存储和传递

Leetcode 350 类似题

已解决

https://leetcode.com/problems/intersection-of-two-arrays-ii/solutions/3543253/java-hash-table/

 

 


 

Leetcode202

 https://leetcode.com/problems/happy-number/solutions/3543306/hash-table/

 

 


Leetcode 1 Two Sum

使用hashmap进行解决, 在java中定义方式,判断方式,读取,输入方式

Map<Integer, Integer> map = new HashMap<>();
map.containsKey(temp)
map.get(temp)
map.put(nums[i], i); 

 

 

标签:map,set,hash,数组,Day6,代码,随想录,哈希,复杂度
From: https://www.cnblogs.com/fangleSea/p/17417016.html

相关文章

  • 代码一直在rebasing master状态,怎么重制到最新代码(不管之前的所有更改)
    根据你的gitstatus输出,你正在进行一个rebase操作,而且还有未完成的操作。如果你只想要让分支在最新的代码上,可以放弃当前的rebase操作,并从远程仓库拉取最新的代码,可以按照以下步骤进行操作:执行gitrebase--abort命令来放弃当前的rebase操作。执行gitfetchorigin......
  • 视频】复杂网络分析CNA简介与R语言对婚礼数据聚类社区检测和可视化|数据分享|附代码数
    最近我们被客户要求撰写关于复杂网络分析的研究报告,包括一些图形和统计输出。复杂网络分析研究如何识别、描述、可视化和分析复杂网络。为了用R来处理网络数据,我们使用婚礼数据集CNA研究和应用爆炸式增长的突出原因是两个因素-一个是廉价而强大的计算机的可用性,使在数学、物理......
  • 如何在代码开发中便捷使用 ChatGPT 协助开发
    在五一节前后,抽空测试了下网上推荐的开发环境和开发插件,在这里推荐给前后端代码开发的同胞们。方法一:IDEA安装插件bito习惯使用IDEA开发代码的同胞,可以尝试直接在IDEA中安装插件bito,注意操作过程中需要注册账号并登录。如下。安装成功后在右侧栏可以看到快捷导航图标,如下。......
  • 使用Python爬取给定网页的所有链接(附完整代码)
    此脚本从给定的网页中检索所有链接,并将其保存为txt文件。(文末有完整源码)这是一个简单的网络爬虫示例,使用了requests库来发送HTTP请求并获取网页内容,使用BeautifulSoup库来解析网页内容。代码解释如下:1.导入所需的库导入requests库并将其重命名为rq,用于发送HTTP请求和获......
  • 《代码大全》读后感1
    *第一部分打好基础第一章欢迎进入软件构建的世界>软件构建的定义:包括编码与调试、单元测试、规划构建、集成等,没有给出一个明确的定义。>软件构建的重要性:软件构建是编写大型项目最重要的、不可或缺的部分。第二章用隐喻来更充分地理解软件开发> 对软件开发地隐喻不是......
  • 源代码管理工具平台介绍
    1:源代码管理工具简述:源代码管理工具是一种用于管理软件开发过程中源代码的工具。它可以帮助开发团队协同开发、版本控制、代码审查、代码合并等。源代码管理工具可以跟踪代码的修改历史,方便开发人员查看代码变化、回滚代码、分支开发等。源代码管理工具是现代软件开发不......
  • ubuntu中使用vscode进行cuda c代码debug出现 no such file or directory 的问题
    {"version":"0.2.0","configurations":[{"name":"CUDAC++:Launch","type":"cuda-gdb","request":"launch","program":......
  • ecshop 购物车 下单 提交到订单表的代码
     /*插入订单表*/do{$order['order_sn']=get_order_sn();if($GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('order_info'),addslashes_deep($order),&#......
  • 分享一下mybatisPlus新代码生成器3.5.1以上
    pom引入:有MP了就不要再引入mybatis了,会出bug的<!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</......
  • ​Cloud Studio 云端开发保障企业源代码安全
    为什么需要保证企业源代码安全随着时代的发展,各行各业的企业或多或少都会与软件源代码打交道,借助软件系统更好地提升企业办公效率,而软件的源代码也自然成了一种企业新型资产。如何确保企业源代码不外泄,成为了各个企业特别关心的痛点问题。这个问题存在已久,各个企业根据自身......