leetcode刷题记录03——top100题里的6道简单+1道中等题

在这里插入图片描述

上一篇博客:
leetcode刷题记录01——top100题里的7道简单题
leetcode刷题记录02——top100题里的7道简单题

  1. 有效的括号
    看懂需要用栈了,但是不知道怎么去写,看了题解mark下正确答案。

    class Solution {public boolean isValid(String s) {int n = s.length();if(n%2==1){return false;}Map<Character,Character> map = new HashMap<Character,Character>(){{put('}','{');put(')','(');put(']','[');}};Deque<Character> stack = new LinkedList<Character>();for(int i = 0; i< n; i++){Character ch = s.charAt(i);if(map.containsKey(ch)){if(stack.isEmpty() || stack.peek() != map.get(ch)){return false;}stack.pop();}else{stack.push(ch);}}return stack.isEmpty();}
    }
    
  2. 买卖股票的最佳时机
    暴力遍历会超时
    看了题解,记录之前的最小价格,记录截至当前的最大利润。

    class Solution {public int maxProfit(int[] prices) {int minPrice = Integer.MAX_VALUE;int maxProfit = 0;for(int i = 0; i< prices.length; i++){if(prices[i] <= minPrice){minPrice = prices[i];}if(maxProfit <= prices[i]-minPrice){maxProfit = prices[i]-minPrice;}}return maxProfit;}
    }
    
  3. 爬楼梯
    一看就会,一写就废🤦‍
    这道题看着很简单,每次爬1或者2个楼梯,10个楼梯有多少种爬法。很好理解,少的楼梯可以手撕。写起来就不会了… 想到了递归,但不会写方法;
    看了题解正确答案,这个还比较好理解;

    class Solution {public int climbStairs(int n) {int p = 1;int q = 2;if(n==1){return p;}else if(n==2){return q;}else{int r = 0;// 从第三楼开始,只有两种上楼方式,从前一层再爬一楼和从前二层再爬两楼。// 可以推出 f(n) = f(n -1) + f(n -2)// 直接递归会超时,所以用的for循环求结果for(int i =3;i<=n;i++){r = p+q;p = q;q = r;}return r;}}
    }
    
  4. 杨辉三角
    可以追溯到我幸福童年小学时光的一道题,那会为了不再教室可以在外边望望风,拿着一本奥赛题书问老师这个问题…
    比较好理解,递归。直接来一个二维数组或者List<List>来存储。
    核心"j == 0 || j == i" 为1,其余的需要根据上一个行的值来计算求解: [i-1][j-1]+[i-1][j] 来获取其值。

    class Solution {public List<List<Integer>> generate(int numRows) {List<List<Integer>> ret = new ArrayList<List<Integer>>();for(int i = 0;i<numRows;i++){List<Integer> row = new ArrayList<Integer>();for(int j = 0;j<=i;j++){if(j==0 || j==i){row.add(1);}else{row.add(ret.get(i-1).get(j-1)+ret.get(i-1).get(j));}}ret.add(row);}return ret;}
    }
    
  5. 只出现一次的数字
    异或来自官方的答案。其实也可以排序完然后判断是返回那个。
    任意数字与0做异或都得到该数字。

    class Solution {public int singleNumber(int[] nums) {int single = 0;for(int num: nums){single ^= num;}return single;}
    }
    
  6. 多数元素
    一遍过,灵感乍现,给数组排个序,再计算count数,就可以找到了。
    还可以更简化,因为题目中已经给定了多数元素个数超过了n/2,所以排序完直接返回 n/2下标处的元素就可以了。

  7. 中等难度:字母异位词组
    第一反应是先把俩个只有一个元素的情况兼容处理,然后对于有多个的,可以对每个词里包含的字母按照升序排列后如果一致,那就是异位词组。
    str.split(“”)得到字符串数组 String[]; 或者str.charAt(i)得到每一位上的数值,然后String[] 转string, String.join(“”,strArray) 或者 StringUtils.join(strArray); 或者 官方答案:str.toCharArray() 得到 char[],然后Arrays.sort(char[]) , new String(char[])转回str。

class Solution {public List<List<String>> groupAnagrams(String[] strs) {List<List<String>> list = new ArrayList<>();if(strs.length ==1){List<String> strList = new ArrayList<>();strList.add(strs[0]);list.add(strList);return list;}Map<String,List<String>> map = new HashMap<String,List<String>>();for(String str: strs){String[] chs = str.split("");Arrays.sort(chs); String strLower = String.join("",chs);if(map.containsKey(strLower)){map.get(strLower).add(str);}else{List<String> strList = new ArrayList<>();strList.add(str);map.put(strLower,strList);}}for(String key: map.keySet()){list.add(map.get(key));}return list;}
}

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

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

相关文章

求单位球内满足边界条件 u = z³ 的调和函数

问题 6&#xff1a;在区域 {x2y2z2≤1}\{x^{2}y^{2}z^{2}\leq 1\}{x2y2z2≤1} 内找到一个调和函数 uuu&#xff0c;使得在边界 x2y2z21x^{2}y^{2}z^{2}1x2y2z21 上&#xff0c;uuu 等于 gz3gz^{3}gz3。 提示&#xff1a;根据第8.1节&#xff0c;解必须是一个三次调和多项式&…

AAA 服务器与 RADIUS 协议笔记

一、AAA 服务器概述1. 核心定义AAA 是认证&#xff08;Authentication&#xff09;、授权&#xff08;Authorization&#xff09;和计费&#xff08;Accounting&#xff09; 的简称&#xff0c;是网络安全领域中实现访问控制的核心安全管理机制&#xff0c;通过整合三种服务确保…

Vue3源码reactivity响应式篇之数组代理的方法

概览 vue3中对于普通的代理包含对象和数组两类&#xff0c;对于数组的方法是重写了许多方法&#xff0c;具体实现参见packages\reactivity\src\arrayInstrumentations.ts arrayInstrumentations实际上就是一个对象&#xff0c;对象的属性就是数组的方法&#xff0c;属性值就是重…

如何玩转K8s:从入门到实战

一、K8S介绍及部署 1 应用的部署方式演变 部署应用程序的方式上&#xff0c;主要经历了三个阶段&#xff1a; 传统部署&#xff1a;互联网早期&#xff0c;会直接将应用程序部署在物理机上 优点&#xff1a;简单&#xff0c;不需要其它技术的参与 缺点&#xff1a;不能为应用…

综合测验:配置主dns,dhcp,虚拟主机,nfs文件共享等

综合实验(所有设备关闭防火墙和selinux)在appsrv上部署主dns&#xff0c;为example.com提供域名解析 安装bind bind-chroot rootappsrv ~]# yum install bind bind-chroot -y编辑主配置文件&#xff0c;全局配置文件&#xff0c;正向解析文件 [rootappsrv ~]# vim /etc/named.c…

MySQL数据库管理与索引优化全攻略

一、表管理1.建库语法&#xff1a;create database if not exists 数据库名;命名规则&#xff1a;仅可使用数字、字母、下划线、不能纯数字&#xff1b;区分字母大小写&#xff1b;具有唯一性&#xff1b;不可使用MySQL命令或特殊字符。相关命令&#xff1a;show databases; …

基于大模型构建 Java 混淆的方式方法(从入门到精通 · 含开源实践)

1. 目标与威胁模型:你到底想防什么? 把“混淆”当作成本叠加器:让逆向者付出更多时间与技能,而不影响用户体验与可维护性。可用 Collberg 等提出的四指标来权衡:有效性/韧性/隐蔽性/成本(potency/resilience/stealth/cost)。近年的研究也在重审这些评估方法,建议结合可…

RabbitMQ面试精讲 Day 28:Docker与Kubernetes部署实践

【RabbitMQ面试精讲 Day 28】Docker与Kubernetes部署实践 在微服务架构日益普及的今天&#xff0c;消息中间件RabbitMQ已成为解耦系统、异步通信的核心组件。随着云原生技术的成熟&#xff0c;如何在Docker与Kubernetes&#xff08;K8s&#xff09;环境中高效、高可用地部署Ra…

神经网络和深度学习介绍

目录 1.深度学习的介绍 2.神经网络的构造 ①神经元结构 ②神经网络组成 ③权重核心性 3.神经网络的本质 4.感知器 单层感知器的局限性&#xff1a; 5.多层感知器 多层感知器的优势&#xff1a; 6.偏置 7.神经网络的设计 8.损失函数 常用的损失函数&#xff1a; 9…

云原生俱乐部-k8s知识点归纳(8)

这一部分主要讲一讲CRD客户资源定义、Gateway API、Priority Class优先类、HPA自动扩缩这四部分内容。还剩下Argo CD的内容了整个k8s&#xff0c;至于operator的话单独有一本书&#xff0c;都是实战内容。CRD客户资源定义先来讲一讲这节内容的几个核心术语&#xff0c;Custom R…

【机器学习】7.随机森林之数学原理

随机森林&#xff08;Random Forest&#xff09;的数学原理核心是“决策树基学习器 Bootstrap抽样 特征随机选择” 的集成框架&#xff0c;通过降低单棵决策树的方差、提升模型泛化能力来工作。以下分步骤解析其数学推导与核心逻辑&#xff1a; 一、 基学习器&#xff1a;决策…

大模型微调面试题全解析:从概念到实战

大模型微调面试题全解析&#xff1a;从概念到实战 微调基础概念 本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型开发 学习视频/籽料/面试题 都在这>>Github<< >>gitee<< &#xff08;一&#xff09;什么是微调 微调&#xf…

Linux: network: arp: arp_accept

文章目录 接收 linux 代码 arp协议的处理 接收 arp_accept - BOOLEAN Define behavior for gratuitous ARP frames who’s IP is not already present in the ARP table: 0 - don’t create new entries in the ARP table 1 - create new entries in the ARP table Both repli…

SpringBoot 整合 Langchain4j RAG 技术深度使用解析

目录 一、前言 二、Langchain4j RAG介绍 2.1 什么是LangChain4j 2.2 LangChain4j RAG技术介绍 2.2.1 RAG技术原理 2.2.2 LangChain4j中的RAG实现 2.2.3 LangChain4j RAG技术优势 2.2.4 LangChain4j RAG技术应用场景 三、LangChain4j RAG 技术深度使用 3.1 文档加载与解…

百度深度学习面试:batch_size的选择问题

题目在深度学习中&#xff0c;为什么batch_size设置为1不好&#xff1f;为什么batch_size设为整个数据集的大小也不好&#xff1f;&#xff08;假设服务器显存足够&#xff09;解答这是一个非常核心的深度学习超参数问题。即使显存足够&#xff0c;选择极端的 batch_size 也通常…

AWS Fargate 完全指南:在无服务器容器中释放应用潜能

容器化技术带来了应用交付的革命,但管理运行容器的底层服务器集群却带来了新的复杂性。如何在不牺牲容器灵活性的前提下,摆脱服务器的运维重负? AWS Fargate 应运而生。它是一款为容器打造的无服务器计算引擎,让您能够专注于构建应用程序,而无需管理服务器。本文将带您深…

WSL Ubuntu数据迁移

将 WSL 中的 Ubuntu 迁移到其他磁盘可有效释放 C 盘空间并优化系统性能。以下是详细步骤及注意事项&#xff1a;&#x1f4cd; ​​迁移步骤​​​​备份 WSL 数据&#xff08;防止意外丢失&#xff09;​​以管理员身份打开 PowerShell 或命令提示符。导出 Ubuntu 实例为压缩包…

基于STM32的病房监测系统/环境监测系统/人体健康监测系统

基于STM32的病房监测系统/环境监测系统/人体健康监测系统 持续更新&#xff0c;欢迎关注!!! 基于STM32的病房监测系统/环境监测系统/人体健康监测系统 随着科技的进步与人们健康意识的提升&#xff0c;环境与人体健康监测的需求日益增长。在医疗、居住和工作环境中&#xff0c…

【适合中小企业应用的Flask网站部署指南】【小白指南系列】如何在Windows Server服务器上部署Flask网站和SSL证书开启HTTPS

【适合中小企业应用的Flask网站部署指南】【小白指南系列】如何在Windows Server服务器上部署Flask网站和SSL证书开启HTTPS 前言&#xff1a; 上一篇文章已经配置好Redis数据库和网站雏形建立了。现在完善了一个比较重大的功能和进度之后&#xff0c;我们尝试初步将Flask项目网…

std::exchange详解

一、基本概念与函数原型 std::exchange 是 C++14 引入的标准库函数,定义于 <utility> 头文件。其核心功能是原子性地替换对象的值并返回旧值,适用于资源管理、状态机更新等场景。 函数原型: template <class T, class U = T> T exchange(T& obj,