当前位置: 首页 > article >正文

hot100 -- 1.哈希系列

1.两数之和

题目:

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

题解:

方法1:暴力求解

def get_two_sum(nums, target):for i in range(len(nums)):for j in range(i+1, len(nums)):if nums[i] + nums[j] == target:return [i, j]

方法2:哈希表+排序+双指针

import collections
def get_two_sum(nums, target):hash = collections.defaultdict(list)# 用哈希表记录位置for i in range(len(nums)):# if nums[i] not in hash:hash[nums[i]].append(i)print(hash)nums.sort()# 双指针寻找left, right = 0, len(nums) - 1while left < right:if nums[left] + nums[right] == target:return [hash[nums[left]].pop(), hash[nums[right]].pop()]elif nums[left] + nums[right] > target:right -= 1else:left += 1

方法3:哈希表(补数)

def get_two_sum(nums, target):hash = {}for i in range(len(nums)):# 找到补数,直接返回if target - nums[i] in hash:return [hash[target - nums[i]], i]hash[nums[i]] = i

http://www.lryc.cn/news/2394044.html

相关文章:

  • leetcode hot100刷题日记——31.二叉树的直径
  • 行为型:解释器模式
  • 逻辑回归详解:从原理到实践
  • FastAPI集成APsecheduler的BackgroundScheduler+mongodb(精简)
  • 本地部署FreeGPT+内网穿透公网远程访问,搞定ChatGPT外网访问难题
  • linux 1.0.3
  • 基于RK3588的智慧农场系统开发|RS485总线|华为云IOT|node-red|MQTT
  • 解锁程序人生学习成长密码,从目标设定开始
  • 简单cnn
  • C#集合循环删除某些行
  • 相机定屏问题分析四:【cameraserver 最大request buffer超标】后置视频模式预览定屏闪退至桌面
  • 【Linux 学习计划】-- 进程地址空间
  • 告别重复 - Ansible 配置管理入门与核心价值
  • 3D Gaussian splatting 04: 代码阅读-提取相机位姿和稀疏点云
  • CTFHub-RCE 命令注入-过滤空格
  • 卫生间改造翻新怎么选产品?我在瑞尔特找到了解决方案
  • C++ list数据删除、list数据访问、list反转链表、list数据排序
  • Express教程【002】:Express监听GET和POST请求
  • mysql安装教程--笔记
  • C++ 观察者模式:设计与实现详解
  • 【PostgreSQL 03】PostGIS空间数据深度实战:从地图服务到智慧城市
  • HIT-csapp大作业:程序人生-HELLO‘s P2P
  • 深入探讨redis:主从复制
  • 帕金森常见情况解读
  • 清华大学发Nature!光学工程+神经网络创新结合
  • 【android bluetooth 案例分析 04】【Carplay 详解 3】【Carplay 连接之车机主动连手机】
  • C++学习-入门到精通【11】输入/输出流的深入剖析
  • NW969NW978美光闪存颗粒NW980NW984
  • 使用 ssld 提取CMS 签名并重签名
  • 前端基础之《Vue(17)—路由集成》