2024.09.20 leetcode刷题记录

# 前言

        昨天发布了第一遍博客,感觉很好,趁着我现在还是很感兴趣就多发几遍,希望能坚持下去,在这里记录下自己学习成长的经历。

        今天是周五,下周一就又要去实习啦,距离上一段实习刚结束一个月,之前的是运维实习,这次找了开发的实习,目前是又期待又害怕(害怕啥都不会),总之还是去试试吧。最近在学go语言,今天不想往下学,那就刷刷题吧,打算先把面试150题刷完。


# 开始刷题

383.赎金信:

https://leetcode.cn/problems/ransom-note/description/?envType=study-plan-v2&envId=top-interview-150

         思路很简单,就是先遍历一遍magazine,在哈希表中统计一下各个单词出现的次数,统计完后再去遍历一遍ransomNote,出现的字符再map中--就行了,若中--map[c] < 0 那就是无法构造出ransomNote,直接返回false就行。

        我本来还在用if (map[c].count()>0) {map[c]++;} else {map[c] = 1;}这种写法,看了题解之后发现可以直接写成++map[c],代码瞬间清晰很多。

class Solution
{
public:bool canConstruct(string ransomNote, string magazine){if (ransomNote.size() > magazine.size()){return false;}unordered_map<char, int> map;for (char c : magazine){++map[c];}for (char c : ransomNote){if (--map[c] < 0){return false;}}return true;}
};

题解中还出了一种利用定长数组去代替哈希表的方法,感觉很好,比哈希表省空间。

class Solution
{
public:bool canConstruct(string ransomNote, string magazine){if (ransomNote.size() > magazine.size()){return false;}vector<int> v(26);for (auto &c : magazine){v[c - 'a']++;}for (auto &c : ransomNote){if (--v[c - 'a'] < 0){return false;}}return true;}
};

205、同构字符串

https://leetcode.cn/problems/isomorphic-strings/description/?envType=study-plan-v2&envId=top-interview-150

这道题是简单题,我一开始确实想简单了,我只用了一个哈希表,去判断s与t是不是一一对应,结果却始终通不过。

最后看了题解,才知道要完成双射,即s-t 和t-s ,为何呢?要不会出现下面这种情况

a b c b a

e e d e e        a,b都对应上e的话,仅仅依靠单射,也是可以的,但题目明确说明了一个字符只能对应一个字符,所以要完成双射判断。

下面代码是我抄的leetcode官方题解:

class Solution
{
public:bool isIsomorphic(string s, string t){unordered_map<char, char> s2t;unordered_map<char, char> t2s;int len = s.length();for (int i = 0; i < len; ++i){char x = s[i], y = t[i];if ((s2t.count(x) &&s2t[x] != y) ||t2s.count(y) && t2s[y] != x){return false;}s2t[x] = y;t2s[y] = x;}return true;}
};


# 结尾 

        今天就先到这把,虽然两个有点少,还都是有关哈希表的简单题,因为我接下来想要研究一下github,创建一个自己的git仓库。

        今天晚上还和舍友约了自助餐,吃完之后再去看一下实习期间要租的小屋,今天还是挺忙的,就到这里吧。

        最后再分享一句《我的团长我的团》里的一句话:死都不怕,就怕不安逸,命都不要,就要安逸,一起共勉。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQLite3 中列(变量)的特殊属性

在 SQLite3 中&#xff0c;列的特殊属性通常通过约束&#xff08;Constraints&#xff09;和数据类型修饰符来定义。这些属性可以在创建表时指定&#xff0c;用于限制数据的完整性或定义特殊行为。以下是 SQLite3 支持的主要特殊属性及其说明&#xff1a; 1. 主键约束&#xff…

Datawhale AI 夏令营:用户洞察挑战赛 Notebook(2)

针对文本聚类优化 优化TF-IDF特征工程# 调整ngram_range&#xff1a;设置为(1, 2)&#xff0c;捕捉单字和双字词&#xff08;如“不错”“不满意”&#xff09;。 # 限制特征数量&#xff1a;通过max_features5000保留高信息密度特征&#xff0c;降低维度。 # 过滤低频/高频词&…

【博主亲测可用】PS2025最新版:Adobe Photoshop 2025 v26.8.1 激活版(附安装教程)

软件简介 Adobe Photoshop 2025是Adobe公司开发的一款图像处理软件。作为行业标准的数字图像编辑工具&#xff0c;其核心定位是创意设计、后期摄影、3D建模和AI驱动创作&#xff0c;适用于专业设计师、摄影师、插画家和多媒体创作者。界面设计简单直观&#xff0c;易于操作&…

unity A星寻路

算法 fCost gCost hCost gCost 是当前节点到移动起始点的消耗&#xff0c;hCost是当前节点到终点的消耗 网格为变成为1的矩形&#xff0c;左右相邻的两个网格直接的gCost为1&#xff0c;斜对角相邻的两个网格的gCost为1.4 hCost 当前网格到终点网格的 水平距离 垂直距离 比如…

十一 Javascript的按值传递

你将知道&#xff1a;“传递” 值是什么意思什么是按值传递传递物品JavaScript 中没有传递引用&#xff01;介绍当需要在 JavaScript 中分配或简单地将一个值传递给其他标识符时&#xff0c;我们就会看到通常所说的 按值传递 。严格来说&#xff0c;JavaScript 中传递值的方式只…

SpringBoot ThreadLocal 全局动态变量设置

需求说明&#xff1a; 现有一个游戏后台管理系统&#xff0c;该系统可管理多个大区的数据&#xff0c;但是需要使用大区id实现数据隔离&#xff0c;并且提供了大区选择功能&#xff0c;先择大区后展示对应的数据。需要实现一下几点&#xff1a; 1.前端请求时&#xff0c;area_i…

如何解决pip安装报错ModuleNotFoundError: No module named ‘logging’问题

【Python系列Bug修复PyCharm控制台pip install报错】如何解决pip安装报错ModuleNotFoundError: No module named ‘logging’问题 摘要&#xff1a; 在使用 PyCharm 2025 控制台通过 pip install 安装第三方库时&#xff0c;常会遇到诸如 ModuleNotFoundError: No module name…

打破技术债困境:从“保持现状”到成为变革的推动者

相信许多在科技行业的同行都面临过类似的挑战&#xff1a;明知系统存在“技术债”&#xff0c;却因为沟通成本、团队压力和短期KPI等原因&#xff0c;难以推动改进&#xff0c;最终陷入“想做却不敢做”的矛盾心态。这不仅影响个人心情&#xff0c;更重要的是&#xff0c;它像一…

Spring Boot 整合 RabbitMQ

Spring Boot 整合 RabbitMQ 一、概述&#xff1a;RabbitMQ 是什么&#xff1f; 你可以把 RabbitMQ 想象成一个「快递中转站」。 比如你在网上买了一本书&#xff0c;卖家&#xff08;生产者&#xff09;把包裹&#xff08;消息&#xff09;交给快递站&#xff08;RabbitMQ&…

Unity Demo-3DFarm详解-其一

我们来拆解一个种田游戏&#xff0c;这个游戏种类内部的功能还是比较模板化的&#xff0c;我们来一点点说。我们大体上分为这么几个部分&#xff1a;农场运营玩法角色与玩家互动物品与背包存档和进度管理用户界面系统农场运营可以大体上分为&#xff1a;种植系统&#xff1a;支…

esp8266驱动下载

问题描述&#xff1a;esp8266插上电脑&#xff0c;设备管理器无法识别&#xff0c;显示为USB serial&#xff08;黄色感叹号&#xff09; 首先确认你的esp8266是不是 CH340 系列的 USB 转串口芯片 CH340驱动下载地址

大语言模型的极限:知识、推理与创造力的边界探析

大语言模型的极限&#xff1a;知识、推理与创造力的边界探析 人工智能领域的快速发展推动了大语言模型&#xff08;LLM&#xff09;的广泛应用&#xff0c;这些模型在文本生成、知识问答和创意表达等方面展现出前所未有的能力。然而&#xff0c;随着应用场景的深化&#xff0c;…

git中的fork指令解释

在Git中&#xff0c;Fork 是指将他人的代码仓库&#xff08;Repository&#xff09;复制到自己的账户下&#xff0c;创建一个完全独立的副本[1][2]。以下是关于Fork的详细说明&#xff1a; Fork的定义与核心作用 定义&#xff1a;Fork是代码托管平台&#xff08;如GitHub&#…

iPhone 抓包工具有哪些?多工具对比分析优缺点

iOS 平台一向以安全性著称&#xff0c;这也使得对其进行网络调试和抓包变得异常困难。相比安卓&#xff0c;iPhone 抓包难点主要在以下几点&#xff1a; 系统限制代理设置的灵活性无法自由安装根证书抓包常涉及 HTTPS 解密与双向认证破解普通用户设备无 root 或越狱权限 因此&a…

使用 libcu++ 库

文章目录使用 libcu 库安装与设置基本组件1. 原子操作2. 内存管理3. 类型特性4. 同步原语编译选项注意事项使用 libcu 库 libcu 是 NVIDIA 提供的 CUDA C 标准库实现&#xff0c;它为 CUDA 开发者提供了类似 C 标准库的功能和接口。以下是使用 libcu 的基本指南&#xff1a; …

[Leetcode] 预处理 | 多叉树bfs | 格雷编码 | static_cast | 矩阵对角线

魔术排列模拟一个特定的洗牌过程&#xff0c;并找到使得经过一系列洗牌和取牌操作后&#xff0c;能够与给定的目标数组target相匹配的最小k值核心思想: 预处理初始排列&#xff1a;从一个按顺序排列的数组&#xff08;例如&#xff0c;{1, 2, 3, ..., n}&#xff09;开始。洗牌…

【技术追踪】SynPo:基于高质量负提示提升无训练少样本医学图像分割性能(MICCAI-2025)

SAM 新用法&#xff0c;无需训练&#xff0c;利用高质量负提示提升分割性能~ 论文&#xff1a;SynPo: Boosting Training-Free Few-Shot Medical Segmentation via High-Quality Negative Prompts 代码&#xff1a;https://liu-yufei.github.io/synpo-project-page/ 0、摘要 大…

深入理解机器学习

一.前言本章节开始来讲解一下机器学习的知识&#xff0c;本期作为一个了解就大概介绍一下&#xff0c;我们不会从机器学习基础开始介绍&#xff0c;但是后面会来补充&#xff0c;随着ai的不断发展&#xff0c;机器学习在ai的领域里面的占比越来约少&#xff0c;我们还是以应用为…

数据结构 顺序表(1)

目录 1.线性表 2.顺序表 1.线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用 的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串… 线性表在逻辑上是线性结构&#…

openssl 生成国密证书

openssl生成证书生成CA私钥 openssl ecparam -genkey -name SM2 -out ca.key.pem -noout证书请求 openssl req -new -key ca.key.pem -out ca.cert.req -subj “/CNrtems-strongswan-CA”生成证书 openssl x509 -req -days 3650 -in ca.cert.req -signkey ca.key.pem -out ca.c…