首页 > 其他分享 >Day 6| 242.有效的字母异位词 、349. 两个数组的交集 、 202. 快乐数 、 1. 两数之和

Day 6| 242.有效的字母异位词 、349. 两个数组的交集 、 202. 快乐数 、 1. 两数之和

时间:2024-05-27 23:11:15浏览次数:26  
标签:202 return int res set dict 讲解 Day 两数

242.有效的字母异位词

建议: 这道题目,大家可以感受到 数组 用来做哈希表 给我们带来的遍历之处。

题目链接/文章讲解/视频讲解: https://programmercarl.com/0242.有效的字母异位词.html

思考

很简单的一道题,需要记住python获取ascii值的函数时ord()

class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        s_dict = [0] * 26
        t_dict = [0] * 26
        for c in s:
            s_dict[ord(c)-ord('a')]+=1
        for c in t:
            t_dict[ord(c)-ord('a')]+=1
        for i ,j in zip(s_dict,t_dict):
            if i!=j:
                return False
        return True

349. 两个数组的交集

建议:本题就开始考虑 什么时候用set 什么时候用数组,本题其实是使用set的好题,但是后来力扣改了题目描述和 测试用例,添加了 0 <= nums1[i], nums2[i] <= 1000 条件,所以使用数组也可以了,不过建议大家忽略这个条件。 尝试去使用set。

题目链接/文章讲解/视频讲解:https://programmercarl.com/0349.两个数组的交集.html

思考

很简单的题目,但是要记住set的一些用法。

#增
set.add(elmnt)
#删
set.discard(value)
#差集(返回在set1中,但不在set2的元素)
set1.difference(set2) 
#或者 
set1-set2 
#交集
set1 & set2 
#或者 
set1.intersection(set2)
class Solution:
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
        return list(set(nums1) & set(nums2))

202. 快乐数

建议:这道题目也是set的应用,其实和上一题差不多,就是 套在快乐数一个壳子

题目链接/文章讲解:https://programmercarl.com/0202.快乐数.html

思考

不快乐的数,会陷入死循环,死循环的表现就是会重复出现已经出现过的数。

def mysum(n):
    res = 0
    while n:
        res+= (n%10)**2
        n = int(n / 10)
    return res
class Solution:
    def isHappy(self, n: int) -> bool:
        res_set = set()
        res_set.add(n)
        while True:
            n = mysum(n)
            if n == 1 :
                return True
            if n in res_set:
                return False
            else:
                res_set.add(n)

1. 两数之和

建议:本题虽然是 力扣第一题,但是还是挺难的,也是 代码随想录中 数组,set之后,使用map解决哈希问题的第一题。

建议大家先看视频讲解,然后尝试自己写代码,在看文章讲解,加深印象。

题目链接/文章讲解/视频讲解:https://programmercarl.com/0001.两数之和.html

思考

两数之和,用哈希来把遍历过的元素存起来,查找时复杂度O(1)。不然需要再用一个for循环,哈希相当于少了一层for循环的计算量。

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        num_dict = {}
        for i in range(len(nums)):
            if (target -nums[i]) in num_dict and i != num_dict[target -nums[i]]:
                return [i,num_dict[target -nums[i]]]
            else:
                num_dict[nums[i]] = i

标签:202,return,int,res,set,dict,讲解,Day,两数
From: https://www.cnblogs.com/forrestr/p/18216823

相关文章

  • 【2023全网最全最火】Selenium WebDriver教程(建议收藏)
    在本教程中,我将向您介绍SeleniumWebdriver,它是当今市场上使用最广泛的自动化测试框架。它是开源的,可与所有著名的编程语言(如Java、Python、C#、Ruby、Perl等)一起使用,以实现浏览器活动的自动化。通过本文,我将告诉您开始使用SeleniumWebDriver测试Web应用程序所需了解的所有信......
  • 2024年5月27日第五十六篇
    今天做了一个网页开发,联系了自己的增删改查,和弹出式表单的设计。<template><el-containerclass="layout-container-demo"><el-asidewidth="200px"><el-scrollbar><el-menu:default-openeds="['1','3�......
  • (五星)用Python学数学-2021 ([美] 彼得 • 法雷尔(Peter Farrell) [Farrell) etc.)
    书:pan.baidu.com/s/1tIHXj9HmIYojAHqje09DTA?pwd=jqso提取码:jqso引言:介绍了本书的目标,即通过Python学习数学的优势和乐趣,以及Python在数学领域的应用概述。Python基础:简要介绍了Python编程语言的基本概念、语法和常用库,为后续的数学学习打下基础。可视化方法:讲解了如何使用Py......
  • Day3_beast实现http server
    一、绑定和监听连接在1CServer.h中声明acceptor,以及用于事件循环的上下文iocontext,和构造函数classCServer:publicstd::enable_shared_from_this<CServer>{public:CServer(boost::asio::io_context&ioc,unsignedshort&port); //构造函数voidStart(); /......
  • 博弈论——洛谷P6560 [SBCOI2020] 时光的流逝
    [SBCOI2020]时光的流逝题目背景时间一分一秒的过着,伴随着雪一同消融在了这个冬天,或许,要是时光能停留在这一刻,该有多好啊。......“这是...我在这个小镇的最后一个冬天了吧。”“嗯,你可不能这辈子都呆在这个小镇吧。外面的世界很大呢,很大很大...”“唔...外面的世界...突然......
  • 2024/05/27
    今日学习有关知识时长:78分钟代码行数:80行发表博客数量:1篇今日学习的内容主要是有关数据库操作中的触发器和储存过程。触发器(trigger)就相当于事件绑定,当你进行某类sql语句操作时将会自动调用你你所设置的触发器来进行操作。储存过程(procedure)就相当于我们Java中的方法,可以带有......
  • 2000.1-2022.06.17中国经济政策不确定性指数日度数据
    2000.1-2022.06.17中国经济政策不确定性指数数据(日度)1、时间:2001.1.1-2022.06.172、指标:CNEPU(经济政策不确定性指数)3、来源:ChinaEconomicPolicyUncertaintyIndex4、用途:可用于量化我国经济政策的不确定性,预测宏观经济增长,分析政策波动对企业的影响5、指标解释:中国经济......
  • 力扣:2028. 找出缺失的观测数据
    2028.找出缺失的观测数据现有一份 n+m 次投掷单个 六面 骰子的观测数据,骰子的每个面从 1 到 6 编号。观测数据中缺失了 n 份,你手上只拿到剩余 m 次投掷的数据。幸好你有之前计算过的这 n+m 次投掷数据的 平均值 。给你一个长度为 m 的整数数组 rolls......
  • 代码随想录算法训练营第五天|242(有效的字母异位词),349(两个数组的交集),202(快乐数)
    哈希C#常用的数据结构:[]Array,ArrayList数组和动态数组List集合HashSet哈希集合(无重复值)HashTable哈希表(obj,obj的键值对)Dictionary<T,T>泛型的哈希表什么时候考虑Hash数据结构?需要高效的判断一个值是否存在在一个容器中时。容器不允许重复值(HashSet或哈希表的......
  • MindSponge分子动力学模拟——多路径分子模拟(2024.05)
    技术背景在前面的MindSponge教程系列博客中,我们已经介绍过MindSponge分子动力学模拟框架的基础功能使用方法,例如MindSponge的安装与使用、定义分子系统、计算单点能和迭代器等等。这些模块和功能,更多的是凭借MindSpore深度学习框架的自动微分、GPU加速和Python语言的灵活性,而本文......