代码随想录算法训练营day6、day7242.有效的字母异位词349.两个数组的交集202.快乐数1.两数之和454.四数相加ll383.赎金信15.三数之和

day6

242.有效的字母异位词

题目
思路:
字母异位词是指两个字符串中每种字母出现的次数一样,true
两个for循环,第一个for遍历第一个字符串,用一个新数组记录每个字母出现的次数(用数组下标指代每个字母,一共26个字母,索引从0-25即可),出现一次,在对应位置+1;另一个for循环遍历另一个字符串,出现一个字母就在对应位置-1。如果数组有元素不为0,return false

349.两个数组的交集

题目
思路:
因为有限制数组在1000内,所以也可以用哈希;题解中是c++用法,std:set;但是python和js中需要其他方法(python:字典和集合、数组、集合;js:数组)
(一些相关基础概念在gpt聊天中)

202.快乐数

题目
思路:
先用函数计算每个数字平方和(取每一位数字),然后检测循环(使用一个集合(如 JavaScript 中的 Set)来存储所有出现过的平方和。如果在计算过程中产生了一个已经出现过的平方和,那么就意味着陷入了循环,这时可以判断该数不是快乐数。);重复计算平方和,直到结果为 1 或者发现循环。

1.两数之和

题目
思路:
需要知道是否遍历过某个元素,并且最后还要返回下标,所以应该用keyvalue来存,所以用map;
遍历的过程:target是7,遍历到第一个数字是2,需要5,于是去map里找5,没有,把2用keyvalue的形式存起来,去遍历下一位3,需要数字4,去map找,没有就存起来,直到找到合适的数据。
重点:

  1. 为什么会想到用哈希表
  2. 哈希表为什么用map
  3. 本题map是用来存什么的
  4. map中的key和value用来存什么的

当我们需要查询一个元素是否出现过,或者一个元素是否在集合里的时候,就要第一时间想到哈希法。


day7

454.四数相加ll

题目
思路:没太看懂

383.赎金信

题目

思路:
与字母异位词那题类似的。

15.三数之和

题目
思路:
去重的逻辑很重要

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值