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

《LeetCode Hot100》 Day01

Day01

  1. 轮转数组

思路:

(1) 使用O(1) 空间复杂度解决,就需要原地解决,不能创建新的数组。

(2) 先整体反转数组,再反转前k个数,再反转剩下的数。即可完整本题。

(3) 所以需要定义一个方法实现反转这个功能,该方法接受三个参数:数组,起始索引,终止索引。

完整代码如下:

class Solution {
​public void rotate(int[] nums, int k) {
​
•    int n = nums.length;
​
•    k %= n; // 轮转 k 次等于轮转 k%n 次
​
•    reverse(nums, 0, n - 1);
​
•    reverse(nums, 0, k - 1);
​
•    reverse(nums, k, n - 1);
​}
​private void reverse(int[] nums, int i, int j) {
​
•    while (i < j) {
​
•      int temp = nums[i];
​
•      nums[i++] = nums[j];
​
•      nums[j--] = temp;
​
•    }
​}
​
}

  1. 在排序数组中查找元素的第一个和最后一个位置

思路:

(1) 从前往后依次遍历,找到目标值在数组中第一次出现的位置,终止此次循环。

(2) 从后往前遍历,找到目标值在数组中最后一次出现的位置,终止此次循环。

代码:

 class Solution {
​
•    public int[] searchRange(int[] nums, int target) {
​
•      int start = -1;
​
•      int end = -1;
​
•      int length = nums.length;
​
•      // 查找开始位置
​
•      for (int i = 0; i < length; i++) {
​
•        if (nums[i] == target) {
​
•          start = i;
​
•          break; // 找到第一个位置后可以结束
​
•        }
​
•      }
​
•      // 查找结束位置
​
•      for (int i = length - 1; i >= 0; i--) {
​
•        if (nums[i] == target) {
​
•          end = i;
​
•          break; // 找到最后一个位置后可以结束
​
•        }
​
•      }
​
•      return new int[] {start, end};
​
•    }
​}

  1. 字符串解码

思路:

(1) 从前往后遍历字符串,如果当前字符是字母,则直接添加到res字符串中。

(2) 如果当前字符是'[',则将当前res存储到特定栈中,并将multi也存储到对应的特定栈中。并重置res和multi。

(3) 如果当前字符是']',则将栈中的res和multi都取出来,其中res重复multi次,添加到一个temp字符串中。

(4) 如果当前字符是数字,则将multi的值*10再加上当前的数字,乘以10的目的是为了当数字为多位数时,确保正确拼接为一个正确的数字。

代码:

class Solution {
​public String decodeString(String s) {
​
•    StringBuilder res = new StringBuilder();  // 存储当前解码的结果
​
•    int multi = 0;               // 当前重复次数
​
•    LinkedList<Integer> stack_multi = new LinkedList<>();  // 存储之前的重复次数
​
•    LinkedList<String> stack_res = new LinkedList<>();    // 存储之前的解码结果
​
•    // 遍历每个字符
​
•    for(Character c : s.toCharArray()) {
​
•      if(c == '[') {
​
•        // 遇到 '[' 时,先保存当前的重复次数和解码结果
​
•        stack_multi.addLast(multi);  // 保存当前的重复次数
​
•        stack_res.addLast(res.toString());  // 保存当前解码结果
​
•        multi = 0;  // 重置重复次数
​
•        res = new StringBuilder();  // 重置解码结果
​
•      }
​
•      else if(c == ']') {
​
•        // 遇到 ']' 时,进行解码操作
​
•        StringBuilder temp = new StringBuilder();
​
•        int cur_multi = stack_multi.removeLast();  // 获取并移除之前保存的重复次数
​
•        for(int i = 0; i < cur_multi; i++) {
​
•          temp.append(res);  // 将当前结果重复指定次数
​
•        }
​
•        res = new StringBuilder(stack_res.removeLast() + temp);  // 拼接之前的解码结果和重复部分
​
•      }
​
•      else if(c >= '0' && c <= '9') {
​
•        // 如果是数字,将其转换为数字并更新重复次数
​
•        multi = multi * 10 + Integer.parseInt(c + "");
​
•      }
​
•      else {
​
•        // 如果是字母,直接添加到当前的解码结果中
​
•        res.append(c);
​
•      }
​
•    }
​
•    return res.toString();  // 返回最终解码的字符串
​}
​
}

相关文章:

《LeetCode Hot100》 Day01

Day01 轮转数组 思路&#xff1a; &#xff08;1&#xff09; 使用O(1) 空间复杂度解决&#xff0c;就需要原地解决&#xff0c;不能创建新的数组。 &#xff08;2&#xff09; 先整体反转数组&#xff0c;再反转前k个数&#xff0c;再反转剩下的数。即可完整本题。 &…...

vue动态table 动态表头数据+动态列表数据

效果图: <template><div style"padding: 20px"><el-scrollbar><div class"scrollbar-flex-content"><div class"opt-search"><div style"width: 100px"> </div><div class"opt-b…...

1.3 GPT vs BERT 终极选择指南:从架构差异到企业级落地策略

GPT vs BERT 终极选择指南&#xff1a;从架构差异到企业级落地策略 引言&#xff1a;两大巨头的分道扬镳 2018年&#xff0c;BERT和GPT系列同时引爆NLP领域&#xff0c;却在架构选择上走向截然不同的道路&#xff1a; BERT采用双向Transformer Encoder&#xff0c;在11项NLP…...

python-leetcode 23.回文链表

题目&#xff1a; 给定单链表的头节点head,判断该链表是否为回文链表&#xff0c;如果是&#xff0c;返回True,否则&#xff0c;返回False 输入&#xff1a;head[1,2,2,1] 输出&#xff1a;true 方法一&#xff1a;将值复制到数组中后用双指针法 有两种常用的列表实现&#…...

食品饮料生产瓶颈?富唯智能协作机器人来 “破壁”

在食品和饮料行业的发展进程中&#xff0c;诸多生产瓶颈如重复性劳动负担、复杂环境作业难题、季节性产能波动等&#xff0c;长期制约着企业的高效运营与进一步发展。如今&#xff0c;富唯智能协作机器人的出现&#xff0c;为这些难题提供了完美的解决方案&#xff0c;正逐步改…...

Golang GORM系列:GORM CRUM操作实战

在数据库管理中&#xff0c;CRUD操作是应用程序的主干&#xff0c;支持数据的创建、检索、更新和删除。强大的Go对象关系映射库GORM通过抽象SQL语句的复杂性&#xff0c;使这些操作变得轻而易举。本文是掌握使用GORM进行CRUD操作的全面指南&#xff0c;提供了在Go应用程序中有效…...

C++ labmbd表达式

文章目录 C++ Lambda 表达式详解1. Lambda 表达式的组成部分:2. Lambda 语法示例(1) 最简单的 Lambda(2) 带参数的 Lambda(3) 指定返回类型的 Lambda3. 捕获外部变量(1) 值捕获(复制)(2) 引用捕获(3) 捕获所有变量4. Lambda 在 STL 中的应用5. Lambda 作为 `std::function`6…...

《大规模动画优化(一):GPU 顶点动画的生成》

GPU 顶点动画&#xff08;Vertex Animation Texture, VAT&#xff09; GPU 顶点动画&#xff08;Vertex Animation Texture, VAT&#xff09;烘焙的核心思想是&#xff1a; 在 CPU 端预先计算动画顶点数据&#xff0c;并存储到纹理&#xff08;Texture2D&#xff09;中&#xf…...

【前端】几种常见的跨域解决方案

在前端开发中&#xff0c;跨域问题是常见的挑战。以下是几种常见的跨域解决方案&#xff1a; 1. Nginx反向代理 使用 Nginx 进行反向代理是解决跨域问题的一种常见方式。Nginx 会充当一个中间代理服务器&#xff0c;接收来自前端的请求并将其转发到实际的后端 API 服务&#…...

如何在WinForms应用程序中读取和写入App.config文件

如何在WinForms应用程序中读取和写入App.config文件 1. 添加App.config文件2. 配置App.config3. 读取App.config4. 写入App.config 在WinForms应用程序中&#xff0c; App.config文件是用于存储配置数据的标准方式。通过使用.NET框架提供的类库&#xff0c;我们可以方便地对 …...

【分布式理论7】分布式调用之:服务间的(RPC)远程调用

文章目录 一、RPC 调用过程二、RPC 动态代理&#xff1a;屏蔽远程通讯细节1. 动态代理示例2. 如何将动态代理应用于 RPC 三、RPC序列化与协议编码1. RPC 序列化2. RPC 协议编码2.1. 协议编码的作用2.2. RPC 协议消息组成 四、RPC 网络传输1. 网络传输流程2. 关键优化点 一、RPC…...

人工智能应用-智能驾驶精确的目标检测和更高级的路径规划

实现更精确的目标检测和更高级的路径规划策略是自动驾驶领域的核心任务。以下是一个简化的示例&#xff0c;展示如何使用Python和常见的AI库&#xff08;如TensorFlow、OpenCV和A*算法&#xff09;来实现这些功能。 1. 环境准备 首先&#xff0c;确保安装了以下库&#xff1a;…...

dynamic_cast和static_cast和const_cast

dynamic_cast 在 C 中的作用 dynamic_cast 是 C 运行时类型转换&#xff08;RTTI, Run-Time Type Identification&#xff09;的一部分&#xff0c;主要用于&#xff1a; 安全的多态类型转换检查类型的有效性向下转换&#xff08;Downcasting&#xff09;跨类层次的指针或引用…...

DEEPSEEK与GPT等AI技术在机床数据采集与数字化转型中的应用与影响

随着人工智能&#xff08;AI&#xff09;技术的迅猛发展&#xff0c;深度学习、自然语言处理等先进技术开始广泛应用于各行各业。在制造业尤其是机床行业&#xff0c;AI技术的融合带来了巨大的变革&#xff0c;尤其在机床数据采集与机床数字化方面的应用。本文将探讨DEEPSEEK、…...

高速存储文章目录

《zynq tcp万兆网和ftp协议分析-CSDN博客》 《国产fpga nvme ip高速存储方案设计_fpga 高速存储-CSDN博客》 《国微pcie switch 8748高速存储方案设计_国产pcie switch-CSDN博客》 《FPGA SATA高速存储设计-CSDN博客》 《FPGA NVME高速存储设计_690t fpga-CSDN博客》 《zy…...

车载测试工具 --- CANoe VH6501 进行Not Acknowledge (NAck) 测试

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身…...

【清晰教程】通过Docker为本地DeepSeek-r1部署WebUI界面

【清晰教程】本地部署DeepSeek-r1模型-CSDN博客 目录 安装Docker 配置&检查 Open WebUI 部署Open WebUI 安装Docker 完成本地DeepSeek-r1的部署后【清晰教程】本地部署DeepSeek-r1模型-CSDN博客&#xff0c;通过Docker为本地DeepSeek-r1部署WebUI界面。 访问Docker官…...

Linux运维——用户管理

Linux用户管理 一、Linux用户管理要点二、常用命令2.1、groupadd2.2、groupdel2.3、groupmod2.4、groups2.5、useradd2.6、userdel2.7、passwd2.9、su2.10、sudo2.10.1、给普通用户授权 sudo2.10.2、 免密码授权 sudo 一、Linux用户管理要点 创建用户组 - 使用 groupadd删除用…...

mac下dify+deepseek部署,实现私人知识库

目前deepseek 十分火爆&#xff0c;本地部署实现私有知识库&#xff0c;帮助自己日常工作&#xff0c;上一篇使用工具cherry studio可以做到私人知识库。今天学习了一下&#xff0c;使用Dify链接deepseek&#xff0c;实现私人知识库&#xff0c;也非常不错&#xff0c;这里分享…...

Linux中设置开机运行指令

系统&#xff1a;Debian 12 使用systemd来设置开机自启动脚本或命令是一个更加现代且推荐的方法。下面是具体的步骤&#xff1a; 创建守护脚本 首先&#xff0c;你需要创建一个Shell脚本文件&#xff0c;比如mydaemon.sh&#xff0c;并在其中编写你的守护脚本逻辑。确保这个脚…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

iview框架主题色的应用

1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题&#xff0c;无需引入&#xff0c;直接可…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用

一、方案背景​ 在现代生产与生活场景中&#xff0c;如工厂高危作业区、医院手术室、公共场景等&#xff0c;人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式&#xff0c;存在效率低、覆盖面不足、判断主观性强等问题&#xff0c;难以满足对人员打手机行为精…...