首页 > 编程语言 >代码随想录算法训练营第六天|242.有效的字母异位词 ● 349. 两个数组的交集 ● 202. 快乐数● 1. 两数之和

代码随想录算法训练营第六天|242.有效的字母异位词 ● 349. 两个数组的交集 ● 202. 快乐数● 1. 两数之和

时间:2024-10-01 21:13:19浏览次数:7  
标签:202 hash int 随想录 dict result return type 两数


学习链接:https://programmercarl.com/哈希表理论基础.html

学习笔记:

遇到“要判断一个值是否在集合中出现过”的问题时,可以考虑hash表。

hash表的形式包括数组、set、dict。当数的位数比较统一、或比较小,可用数组,快;当数的位数可变,可用set;当要同时考虑数的下标和值,可以用dict。

我的解答过程:

242.有效的字母异位词(用的数组作hash表,只需知道字母与‘a’的差,不用知道具体ASCII码)

点击查看代码
class Solution(object):
    def isAnagram(self, s, t):
        """
        :type s: str
        :type t: str
        :rtype: bool
        """
        record=[0]*26
        for i in s:
            record[ord(i)-ord('a')] += 1
        for i in t:
            record[ord(i)-ord('a')] -= 1
        for i in range(26):
            if record[i] != 0:
                return False
        return True

349.两个数组的交集(用的dict作hash表,结果用set避免重复)

点击查看代码
class Solution(object):
    def intersection(self, nums1, nums2):
        """
        :type nums1: List[int]
        :type nums2: List[int]
        :rtype: List[int]
        """
        result = set()
        hash_dict = {}
        for i in nums1:
            hash_dict[i]=hash_dict.get(i, 0)+1
        for i in nums2:
            if i in hash_dict:
                result.add(i)
                del hash_dict[i]
        return list(result)
202.快乐数(用set作hash表,把数字转换为str来遍历每一位上的数字,无限循环用while,当循环得到同一个n代表不快乐要跳出循环)
点击查看代码
class Solution(object):
    def isHappy(self, n):
        """
        :type n: int
        :rtype: bool
        """
        record=set()
        while n not in record:
            record.add(n)
            new_n = 0
            str_n = str(n)
            for i in str_n:
                new_n += int(i)**2
            if new_n == 1:
                return True
            else:
                n = new_n

        return False
1.两数之和(用dict作hash表,查找目标值与当前值的差是否在hash表里,用值作为dict的键,下标作dict的值)
点击查看代码
class Solution(object):
    def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        result=dict()
        for i, value in enumerate(nums):
            if target-value in result:
                return [result[target-value], i]
            result[value]=i
        return []
PS:

我都用Python解题。其实今天是我第一天学习,加油!

标签:202,hash,int,随想录,dict,result,return,type,两数
From: https://www.cnblogs.com/tristan241001/p/18443332

相关文章

  • [20240930]关于共享池-表对象在库缓存探究2.txt
    [20240930]关于共享池-表对象在库缓存探究2.txt--//以前探究过sql语句在共享池存在父子游标,父游标存在堆0,子游标堆0,堆6,通过各种指针链接起来,--//父游标的堆0上保存了所有子游标的列表和各个子游标的句柄指针,子游标的堆6中保存了解析过的执行计划等解析信息。--//前几天测试表对象......
  • 2024/09/29 模拟赛总结
    \(0+0+0+0=0\),感觉不如#include<bits./stdc++.h>#A.你相信()吗\(70\)分的\(O(n^3)\)算法很好解决,枚举出三盏灯的亮度后,剩下一个灯的亮度一定固定。对于每个格子剩余亮度需求取max即可。然后我们充分发扬人类智慧,当\(n\le400\)时跑暴力,否则考虑推式子,下面的\(=\)表......
  • 【牛客训练记录】2024牛客国庆集训派对day1
    https://ac.nowcoder.com/acm/contest/90188#question赛后反思好像没有,全场只做出来一题QAQJ题想在图上找到同色三角形,我们枚举至少是\(O(n^3)\)的,所以我们考虑容斥定理(?),去找异色三角形,因为只要保证一条边上两点颜色不一样,另找一点随便都可以,所以我们只要统计白色的点数,......
  • 当一群人聚在 RTE Open Day 现场|S 创上海 2024 回顾
       散场以后 9月20和21日的上海,RTE开发者社区正在主持第四期RTEOpenDay。这里有两场台风暴雨,和一群并没有因此降低半分热情的RTEbuilders! 这次我们把为实时互动领域的开发者们搭建的线下交流场,放在了一个年轻、多元、活力十足的科技聚会——S创上海202......
  • 2024.09 做题记录
    20240901上午模拟赛能想出来T2,但是怎么没想出来呢。T2:及时去想\(2^{k/2}\)的做法,猜到是DP套DP,但是没有进一步思考内层状态是\(O(2^{k/2}k)\)的。T3:没调完/fn/fnT4:赛时会了\(f_{i,j}\)表示\(B(i,j)\)是否可行,但是么有去想进一步的单调性优化,\(f_{i}\)可以表示最......
  • CSP2024-30
    A题意:将一个圆等分为\(K\)分,给出其中\(n\)个等分点的编号,\(x_i<x_{i+1}\)。有向边\(i\toj\)存在,当且仅当\(j\)是距离\(i\)最大的点(不唯一),且与图中其他边无交点(端点不算)。求图中最多有多少条边。\(3\leK\le10^9,3\len\le\min(K,10^5)\)。引理:不存在......
  • The 2024 ICPC Asia East Continent Online Contest (II)
    A.GamblingonChoosingRegionals最差情况就是,强队都和你去一起。因此赛站越小,排名也一定越小。然后只要动态实现出每个学校最强的若干只队伍就好了。#include<bits/stdc++.h>usingnamespacestd;usingi32=int32_t;usingi64=longlong;#defineinti64using......
  • 2024 北京市大学生程序设计竞赛
    Preface北京市赛(×),小WF(确信)感觉这场题总体都挺难的,除了前1h出了两个题后,后面基本上都是1h出一题然后最后1h发生了经典的我和徐神B,F双开双会,最后开始抢机时,最后经典的一个没写出来赛后发现F赛时代码改个初值就能过了,而徐神多花了半小时也是成功把B过了只能说还......
  • 信息学奥赛复赛复习08-CSP-J2020-03表达式前置知识点-后缀表达式、栈、字符读取
    PDF文档公众号回复关键字:202410011P1449后缀表达式[题目描述]所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)本题中运算符仅包含+-*/。保证对于/运算......
  • A. 2025--[炼石计划--NOIP模拟三]--T1--矩形
    赛时草了个\(O(n^4\log(n))\)竟然能过70分虽然本来就是这么分配的,发现正解只需将二分改为双指针就可以了,最气的是上面计算的时候用到还是尺取下面就用的二分(唐诗)。其实这题就是暴力,然后在低级的暴力上加一些操作变得稍微高级一点。计算的话直接暴力查找不同颜色,只不过范围......