算法练习|Leetcode49字母异位词分词 ,Leetcode128最长连续序列,Leetcode3无重复字符的最长子串,sql总结

目录

  • 一、Leetcode49字母异位词分词
    • 题目描述
    • 解题思路
    • 方法:哈希
    • 总结
  • 二、Leetcode128最长连续序列
    • 题目描述
    • 解题思路
    • 方法:
    • 总结
  • 三、Leetcode3无重复字符的最长子串
    • 题目描述
    • 解题思路
    • 方法:双指针法
    • 总结
    • sql总结

一、Leetcode49字母异位词分词

题目描述

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

在这里插入图片描述

题目链接:力扣题目链接

解题思路

  • 看到小写字母,想到使用哈希ord
  • 将前面出现过的放在字典,再次出现相同的就append

方法:哈希

  • 要用两次循环做哈希,找到每个单层对应的哈希特征
  • 加入字典
  • 打印字典value
class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        mp = defaultdict(list)

        for i in strs:
            # 把每个单词特征存好
            pre = [0] * 26
            for j in i:
                pre[ord(j) - ord("a")] += 1
            # 找之前是否出现过
            mp[tuple(pre)].append(i)

        return list(mp.values())
           

总结

  • 新建字典:mp = defaultdict(list),添加value时默认值是[]
  • 字典的key要唯一,数组作为key要变成元组tuple
  • 最终输出字典的所有value:list(mp.values())


二、Leetcode128最长连续序列

题目描述

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。

请你设计并实现时间复杂度为 O(n) 的算法解决此问题。

在这里插入图片描述

题目链接:力扣题目链接

解题思路

  • 去重
  • 排序
  • 看下一位是不是当前位+1
  • 更新最大长度

方法:

  • 先用list(set())去重,sort()排序
  • 看下一位是不是当前位+1
  • 更新最大长度
  • 反之,长度变回1
class Solution:
    def longestConsecutive(self, nums: List[int]) -> int:
        if not nums:
            return 0
            
        nums = list(set(nums))  # 去除重复元素
        nums.sort()
        l = 1
        res = 1
        for i in range(len(nums)):
            cur = nums[i] 
            if (i+1)<len(nums) and nums[i+1] == cur+1:
                l += 1
                res = max(res, l)
            else:
                l = 1

        return res
        

总结

  • 思考要不要排序,排序前要不要去重
  • 去除重复元素再排序!!list(set()),.sort()
  • 注意i+1不要超限!!


三、Leetcode3无重复字符的最长子串

题目描述

给定一个字符串 s ,请你找出其中不含有重复字符的 最长
子串的长度。

在这里插入图片描述

题目链接:力扣题目链接

解题思路

  • 双指针
  • 每走一步,用字典记录字符和下标
  • 出现重复的,移动left,更新right

方法:双指针法

  • 每走一步记录 字符:下标
  • 遇到重复的,left移动到之前记录的重复位置+1
  • 更新当前right位置的字典
  • 更新length
  • right += 1
class Solution:
    def lengthOfLongestSubstring(self, s: str) -> int:
        left, right = 0, 0
        length = 0
        dic = {}
        while right < len(s):
            if s[right] in dic and dic[s[right]] >= left:
                left = dic[s[right]] + 1
            dic[s[right]] = right
            length = max(length, right - left + 1)
            right += 1

        return length
        

总结

  • left的移动:
    字典中先判断有重复元素
    并且重复元素之前出现的位置在left右边
    移动到重复元素的右边一个位置


sql总结

  • 所有情况都满足才返回
    (当一个产品所有发布时间都要在时间范围内才返回id)
    用count检测:having count(x between ’ ’ and ’ ') = count(*)

心得:积累算法还是要多刷题,在进步了!~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/566292.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

linux下 Mysql8.0 离线安装

环境&#xff1a;centos7.9 MysqlL8.0.36安装包 链接&#xff1a;https://pan.baidu.com/s/1bKwHr05z8Ye82dT9tntdUA 提取码&#xff1a;3a5z 参考Centos安装MYSQL8(离线可用) 文章目录 1、解压安装2、配置启动2.1 修改配置文件2.2 mysql 启动 3、mysql 测试 1、解压安装 #…

kettle数据迁移从oracle到mysql

kettle数据迁移从oracle到mysql 下载方式1&#xff1a;方式2&#xff1a;方式3&#xff1a;下载后解压就行 二、启动三、连接数据库1.前期2.oracle数据库3.mysql数据库 四、迁移一、配置表输入参数1.在【转换】里面&#xff0c;选择【核心对象】&#xff0c;选中将【表输入】拖…

springboot 批量下载文件, zip压缩下载

一、使用hutool 工具类 效果&#xff1a;下载速度可以 1、依赖&#xff1a;hutool <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.26</version> </dependency>2、调用方式 im…

Rust 使用结构体组织相关联的数据

目录 结构体的定义和实例化 使用字段初始化简写语法使用结构体更新语法从其他实例创建实例使用没有命名字段的元组结构体来创建不同的类型没有任何字段的类单元结构体结构体示例程序 通过派生 trait 增加实用功能方法语法 定义方法带有更多参数的方法关联函数多个 impl 块本文有…

向量的点积和叉积的几何意义

1. 点积 点积(dot product)&#xff0c;又称标量积&#xff08;scalar product&#xff09;。结果等于。 可用于 判断的是否垂直求投影长度求向量是抑制作用还是促进作用 2. 叉积 叉积(cross product)&#xff0c;又称为向量积(vector product)。模长等于&#xff0c;方向…

简单学量化——pandas的应用26——sort_values函数5

简单学量化——pandas的应用26——sort_values函数5 sort_values是pandas中的排序函数&#xff0c;语法如下&#xff1a; DataFrame.sort_values(by,axis0,ascendingTrue,inplaceFalse,kindquicksort,na_positionlast, ignore_indexFalse,keyNone) 前面我们学习了by、axis、a…

嵌入式linux中uboot的启动过程分析

之前对这个uboot的源码了解有些许遗忘。最近做AVB校验,需要uboot到kernel的这个过程。这里再复习一下。 与大多数BootLoader一样,uboot的启动过程分为BL1和BL2两个阶段。 BL1阶段通常是开发板的配置等设备初始化代码,需要依赖依赖于SoC体系结构,通常用汇编语言来实现; …

Java | Leetcode Java题解之第43题字符串相乘

题目&#xff1a; 题解&#xff1a; class Solution {public String multiply(String num1, String num2) {if (num1.equals("0") || num2.equals("0")) {return "0";}int m num1.length(), n num2.length();int[] ansArr new int[m n];for…

转行做银行测试,需要了解哪些?

在这个内卷严重的时代&#xff0c;银行的业务不断增加&#xff0c;随着软件信息化的要求越来越高&#xff0c;银行对软件测试人员也提出了非常高的要求。 银行的软件测试是针对银行的软件系统&#xff08;如柜面系统、信贷系统&#xff09;和银行专用设备&#xff08;如ATM机、…

新手学习C++常去的网站!

1、cppreference cppreference 是一个免费学习 C 的网站&#xff0c;你也可以把它看成是一个 C 学习手册&#xff0c;内容相当丰富&#xff0c;涵盖几乎所有 C 的知识点&#xff0c;除此以外&#xff0c;它内容更新很快&#xff0c;紧随 C 标准&#xff0c;目前已经到 C23 的内…

【系统架构师】-案例考点(三)

1、信息系统架构ISA设计 四种架构模型&#xff1a; 1&#xff09;单机应用 2&#xff09;客户机/服务器模式&#xff1a;两层、三层C/S、B/S模型、MVC模式等 3&#xff09;面向服务架构SOA 4&#xff09;企业数据交换总线&#xff1a;不同企业应用之间通过信息交换的公共频…

Java入门四步走

1. 简单的入门语法&#xff1a; 1.1 数据类型&#xff1a; 基本数据类型&#xff1a; 整数类型 —— byte、short、int、long, 浮点类型 —— float、double 字符类型 —— char 布尔类型 —— boolean 引用数据类型&#xff1a; 接口&#xff08;interface&#xff09;、数…

解决在linux中执行tailscale up却不弹出验证网址【Tailscale】【Linux】

文章目录 问题解决提醒 问题 最近有远程办公需求&#xff0c;需要连接内网服务器&#xff0c;又不太想用todesk&#xff0c;于是找到一个安全免费可用的Tailscale Best VPN Service for Secure Networks&#xff0c;在windows中顺利注册账号后&#xff0c;登陆了我的windows …

Linux:服务器硬件及RAID配置

Linux&#xff1a;服务器硬件及RAID配置 服务器 服务器是什么 服务器的英文名称为“ Server”&#xff0c;是指在网络上提供各种服务的高性能计算机。作为网络的节点&#xff0c;存储、处理网络上80&#xff05;的数据、信息&#xff0c;因此也被称为网络的灵魂。 服务器和…

在使用电脑时遇过msvcr120.dll文件丢失的情况怎么办,一键修复dll文件丢失

在使用电脑时有没有遇到过msvcr120.dll文件丢失的情况&#xff0c;遇到这样的情况有什么办法可以解决&#xff0c;废话少说&#xff0c;直接上教程&#xff0c;解决msvcr120.dll文件丢失问题。 msvcr120.dll文件丢失修复方法 A. 从官方或其他可信赖的来源下载并安装缺失的 msv…

在Nuxt.js中添加PostCSS自动前缀器

在其他浏览器中&#xff0c;有些 CSS 属性需要带有前缀。如-webkit- | -o- | -ms- 等等 Autoprefixer 是一个 PostCSS 插件&#xff0c;可以将你的CSS代码渲染到浏览器中自动补充厂商前缀&#xff0c;因此你不用担心自己编写的CSS代码有浏览器兼容性问题。 如&#xff1a; .fl…

k8s:通过nodeSelector将pod调度到含有指定标签的结点上

一、查看node,并给node打标签 二、在资源清单文件中配置nodeSelector来指定要往满足哪个标签条件的结点进行调度 apiVersion: v1 kind: Pod metadata:name: probe-tcp spec:containers:- name: nginximage: nginxlivenessProbe:initialDelaySeconds: 5timeoutSeconds: 5tcpSo…

日语对话构建调查研究

日语对话构建调查研究 一&#xff0c;OKWave&#xff08;オウケイウェイヴ&#xff09;网站NLP数据调研 1.OKWave速递 OKWave网址&#xff1a;OKWave 网站印象图 2.调研结论 &#xff08;1&#xff09;可行性&#xff1a;无特殊反爬手段&#xff0c;可直接从OKWave网站抓…

Springboot+Vue项目-基于Java+MySQL的学科竞赛管理系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

echarts 双堆叠柱状图(数据整理)

1.后台返回的数据格式 {"code": "0000","message": "","messageCode": "操作成功","sign": null,"detail": null,"data": {"pieChart": [{"key": "产品…