leecode刷题第5天

1.今天的第一题是一道合并链表题,题目如下:

这道题的思路是先判断两个链表的头节点值谁大,如果l1大则将l1的头节点加入到curr中且l1=l1.next,否则将l2的头节点加入到curr中且l2=l2.next,直到l1和l2中有一个为空,最后将不为空的链表直接加入到curr中。代码如下:

class Solution:    def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:        curr=ListNode()#新建头节点        heads=curr        while l1!=None and l2!=None:            if(l1.val<l2.val):                curr.next=l1                l1=l1.next            else:                curr.next=l2                l2=l2.next            curr=curr.next        if l1!=None:            curr.next=l1        if l2!=None:            curr.next=l2                return heads.next

2.第二题题目如下:

这道题的一个最优解是:
首先检查数组是否为空数组
建立一个长度为26的数组,起始值为0
遍历所有字符串,将字母的出现频率放到数组的对应位置里(利用ascii码)
遍历数组,按照相同字母出现频率进行分组归类(使用hashmap)
遍历map,将结果返回
代码如下:

class Solution:    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:        if len(strs)==0:            return []        maps={}                for stri in strs:            characters=[0]*26            for i in range(len(stri)):                asciii=ord(stri[i])-97#得到对应字母的下标                characters[asciii]+=1            b=[str(i) for i in characters]            key="".join(b)            #将对应的键值保存到maps中,增加到对应的列表里方便输出结果if (key in maps.keys()):                maps[key].append(stri)            else:                maps[key]=[stri]             result=[]      for i in maps.keys():            result.append(maps[i])        return result        

leecode刷题第五天相关推荐

  1. leecode刷题(4)-- 存在重复数组

    leecode刷题(4)-- 存在重复数组 存在重复数组 题目描述: 给定一个整数数组,判断是否存在重复元素. 如果任何值在数组中出现至少两次,函数返回 true.如果数组中每个元素都不相同,则返回 ...

  2. Leecode刷题【1数组专题4】80. 删除排序数组中的重复项II (以及通用解法)

    Leecode刷题 [1数组专题4]80. 删除排序数组中的重复项II (以及通用解法) 题目: 思路 双指针法: (错误代码) 正解: 通用解法: 题目: 给你一个有序数组 nums ,请你 原地 ...

  3. C语言百日刷题第五天

    C语言百日刷题第五天 41.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定 42.实现一个函数来交换两个整数的内容. 43.实现一个函数来进行整型有序数组的二分查找 44.接收一个无符号整型 ...

  4. 刷题方法(五步刷题法)

    先介绍一下我刷题的方法–五步刷题法.这是我看的极客时间覃超老师的刷题方法.为什么要刷5遍题目呢?其实刷题最重要的是过遍数,也就是说每题花的时间少,但是要多刷几遍,形成记忆(大牛就可以不用看了,我这里只 ...

  5. Leecode刷题热题HOT100导航目录

    导航 前言 题目目录 总结 前言 本文记录LeetCode刷题热题HOT100系列文章目录. 本系列文章包括: 自己在LeetCode刷题过程中自己的解题思路 优秀的解题思路 通过题目的自己代码 优秀 ...

  6. 『百日百题 · SQL篇』备战面试,坚持刷题(五)—— 多表查询

    本专栏『百日百题』长期更新,一起加入本刷题计划,一起成长吧!

  7. 哈希表——算法专项刷题(五)

    五.哈希表 哈希表多用于辅助记录是否存在key或者通过key找下标value 5.1插入.删除和随机访问都是O(1)的容器 原题链接 设计一个支持在平均 时间复杂度 O(1) 下,执行以下操作的数据结 ...

  8. 牛客前端刷题(五)—— CSS相关概念

    还在担心面试不通过吗?给大家推荐一个超级好用的刷面试题神器:牛客网,里面涵盖了各个领域的面试题库,还有大厂真题哦! 赶快悄悄的努力起来吧,不苒在这里衷心祝愿各位大佬都能顺利通过面试. 面试专栏分享,感 ...

  9. 程序员代码面试指南刷题--第五章.字符串的调整II

    题目描述 给定一个字符类型的数组chas[],chas右半区全是空字符,左半区不含有空字符.现在想将左半区的空格字符串替换成"%20",假设chas右半区足够大,可以满足替换需要的 ...

最新文章

  1. Oracle database 11g 安装 - 配置企业管理器database control失败
  2. C++回调函数是什么?
  3. 全国 省市 自治区的数据库sql生成
  4. 前端学习(2057):vue.js的安装方法
  5. Multi_thread--Linux下多线程编程中信号量介绍及简单使用
  6. 全球信息产业的云转型浪潮
  7. 21天Jmeter打卡Day13 逻辑控制器之if和简单控制
  8. 反编译那些事儿(四)—序列化问题
  9. Quartus II13.0的破解过程
  10. 笔记本计算机在桌面显示器,笔记本连接显示器
  11. 【JS】阮一峰js教程总结
  12. 服务器ahci模式安装系统,ahci模式下安装win7系统的方法
  13. 蓝桥杯 单片机 决赛 第7届 电压、频率采集设备
  14. Flutter 修改App Logo图标
  15. 研究表明:手机移动数据可用于预测犯罪行为
  16. pandas相关性分析的三种方法
  17. 对于面向对象的简单理解
  18. HTTP请求中POST与GET的区别
  19. 利用Try-with-resources(TWR)读取Excel文件
  20. 英语总结和摘要怎样写?

热门文章

  1. 读《Effective java 中文版》(2)
  2. 红蓝攻防中蓝队职责(防守方)
  3. JAVA的反射机制==用反射分析类的实现
  4. MATLAB求多项式系数及次数
  5. 简单的机械键盘换轴过程(非热插拔)
  6. PCI、PCIE、NVME;ATA、SATA、AHCI及M.2接口简单辨别
  7. 大学物理·第6章静电场中的导体与电介质
  8. 2018年4月前端必须star的github项目
  9. 一次偶然的编程,改变了我的职业生涯
  10. 11.2、SR基本原理