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

【LeetCode】剑指 Offer <二刷>(4)

目录

题目:剑指 Offer 09. 用两个栈实现队列 - 力扣(LeetCode)

题目的接口:

解题思路:

代码:

过啦!!!

题目:剑指 Offer 10- I. 斐波那契数列 - 力扣(LeetCode)

题目的接口:

解题思路:

代码:

过啦!!!

写在最后:


题目:剑指 Offer 09. 用两个栈实现队列 - 力扣(LeetCode)

题目的接口:

type CQueue struct {}func Constructor() CQueue {}func (this *CQueue) AppendTail(value int)  {}func (this *CQueue) DeleteHead() int {}/*** Your CQueue object will be instantiated and called as such:* obj := Constructor();* obj.AppendTail(value);* param_2 := obj.DeleteHead();*/

解题思路:

这道题我用 C++ 写的时候是比较简单顺手的,用 STL 可以直接调库调两个栈出来,然后一个作为 inStack,一个作为 OutStack,存入的时候存 inStack,出栈的时候,将 inStack 放进 OutStack 里面,再删除 OutStack 的内容就可以了,

而现在用 golang 来刷这道题,思路不难,主要是怎么样优雅地实现栈结构呢?切片的特性还是很好用的,可以说这下又学会了一个操作,怎么不用下标倒序遍历切片:

this.outStack = append(this.outStack, this.inStack[len(this.inStack)-1])
this.inStack = this.inStack[:len(this.inStack)-1]

不断变小 + 不断取最后一个元素就行了,真是妙啊。具体代码如下: 

代码:

type CQueue struct {inStack []intoutStack []int
}func Constructor() CQueue {return CQueue{}
}func (this *CQueue) AppendTail(value int)  {this.inStack = append(this.inStack, value)
}func (this *CQueue) DeleteHead() int {if len(this.outStack) == 0 {if len(this.inStack) == 0 {return -1}this.in2out()}value := this.outStack[len(this.outStack)-1]this.outStack = this.outStack[:len(this.outStack)-1]return value
}func (this *CQueue) in2out() {for len(this.inStack) > 0 {this.outStack = append(this.outStack, this.inStack[len(this.inStack)-1])this.inStack = this.inStack[:len(this.inStack)-1]}
}/*** Your CQueue object will be instantiated and called as such:* obj := Constructor();* obj.AppendTail(value);* param_2 := obj.DeleteHead();*/

过啦!!!

题目:剑指 Offer 10- I. 斐波那契数列 - 力扣(LeetCode)

题目的接口:

func fib(n int) int {}

解题思路:

这道题就是非常经典的动态规划入门题目,我这里就直接做了,其实还可以进行空间的优化,但是我觉得没有很大的必要,简单的题没必要,难的题你也优化不出来说实话。

代码:

func fib(n int) int {if n <= 1 {return n}dp := make([]int, 101)dp[0] = 0dp[1] = 1for i := 2; i <= 100; i++ {dp[i] = (dp[i-1] + dp[i-2]) % (1e9 + 7)}return dp[n] 
}

过啦!!!

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果感到有所收获的话可以给博主点一个哦。

如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~

相关文章:

【LeetCode】剑指 Offer <二刷>(4)

目录 题目&#xff1a;剑指 Offer 09. 用两个栈实现队列 - 力扣&#xff08;LeetCode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 题目&#xff1a;剑指 Offer 10- I. 斐波那契数列 - 力扣&am…...

CentOS7查看和关闭防火墙

CentOS 7.0默认使用的是firewall作为防火墙 查看防火墙状态 firewall-cmd --state1 停止firewall systemctl stop firewalld.service1 禁止firewall开机启动 systemctl disable firewalld.service 1 转自&#xff1a;CentOS 6和CentOS 7防火墙的关闭 Centos7开放及查看…...

LeetCode 无重复字符的最长子串 打败100%的人

&#x1f600;前言 LeetCode上的“无重复字符的最长子串”问题要求我们找到给定字符串中不包含重复字符的最长子串的长度。这个问题是一个典型的滑动窗口技巧的应用&#xff0c;需要有效地处理字符出现的情况来找到解决方案。 . 在本解决方案中&#xff0c;我们将探讨两种不同的…...

Spring Boot中通过maven进行多环境配置

上文 java Spring Boot将不同配置拆分入不同文件管理 中 我们说到了&#xff0c;多环境的多文件区分管理 说到多环境 其实不止我们 Spring Boot有 很多的东西都有 那么 这就有一个问题 如果 spring 和 maven 都配置了环境 而且他们配的不一样 那么 会用谁的呢&#xff1f; 此…...

python自动化Selenium的使用

python自动化Selenium的使用 Selenium是一个自动化测试框架&#xff0c;用于模拟和控制浏览器操作&#xff0c;支持多种编程语言。它可以模拟人类用户在浏览器上的操作&#xff08;如点击、滚动、输入等&#xff09;&#xff0c;并检查网页内容和元素的属性。Selenium可用于对…...

大数据课程K13——Spark的距离度量相似度度量

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 掌握Spark的距离度量和相似度度量; ⚪ 掌握Spark的欧氏距离; ⚪ 掌握Spark的曼哈顿距离; ⚪ 掌握Spark的切比雪夫距离; ⚪ 掌握Spark的最小二乘法; 一、距离度量和相似度度量 1. …...

Lambda表达式第四版

1、冗余的Runnbale代码 package com.lambda;public class Demo01Runnable {public static void main(String[] args) {RunnableImpl runnable new RunnableImpl();Thread thread new Thread(runnable);thread.start();//Lambda表达式} }class RunnableImpl implements Runnab…...

自定义类加载器

java中自定义类加载器&#xff0c;并将双亲委派改为逆向双亲委派 自定义类加载器JarLoader&#xff1a; package cn.ac.iscas.dmo.common.tools.core.classloader;import org.apache.commons.collections4.MapUtils;import java.io.*; import java.net.URL; import java.net.U…...

【Redis】Redis 的学习教程(七)之 SpringBoot 集成 Redis

在前几篇文章中&#xff0c;我们详细介绍了 Redis 的一些功能特性以及主流的 java 客户端 api 使用方法。 在当前流行的微服务以及分布式集群环境下&#xff0c;Redis 的使用场景可以说非常的广泛&#xff0c;能解决集群环境下系统中遇到的不少技术问题&#xff0c;在此列举几…...

Vlan和Trunk

文章目录 一、VLAN的定义与背景1. 传统以太网的问题&#xff08;广播域&#xff09;2. 用VLAN隔离广播域3. VLAN的优点与应用 二、VLAN的转发过程举例三、802.1Q标签&#xff1a;帧格式与作用四、VLAN工作原理交换机端口类型AccessTrunkHybrid PVID&#xff08;Port VLAN ID&am…...

java 批量下载将多个文件(minio中存储)压缩成一个zip包

我的需求是将minio中存储的文件按照查询条件查询出来统一压成一个zip包然后下载下来。 思路&#xff1a;针对这个需求&#xff0c;其实可以有多个思路&#xff0c;不过也大同小异&#xff0c;一般都是后端返回流文件前端再处理下载&#xff0c;也有少数是压缩成zip包之后直接给…...

nnUNet v2数据准备及格式转换 (二)

如果你曾经使用过nnUNet V1&#xff0c;那你一定明白数据集的命名是有严格要求的&#xff0c;必须按照特定的格式来进行命名才能正常使用。 这一节的学习需要有数据&#xff0c;如果你有自己的数据&#xff0c;可以拿自己的数据来实验&#xff0c;如果没有&#xff0c;可以用十…...

ant-vue1.78版监听a-modal遮罩层的滚动事件

监听a-modal遮罩层的滚动事件 我们开发过程中经常有遇到监听页面滚动的事件需求&#xff0c;去做一些下拉加载或者是下拉分页的需求&#xff0c;我们直接在vue的生命周期中去绑定事件监听非常的方便&#xff0c;但如果是弹框的遮罩层的滚动监听呢&#xff1f;页面的监听完全是…...

MATLAB中residue函数用法

目录 语法 说明 示例 求解具有实根的部分分式展开式 展开具有复数根和同次分子及分母的分式 展开分子次数高于分母次数的分式 residue函数的功能是部分分式展开&#xff08;部分分式分解&#xff09;。 语法 [r,p,k] residue(b,a) [b,a] residue(r,p,k) 说明 [r,p…...

攻防世界-Caesar

原题 解题思路 没出现什么特殊字符&#xff0c;可能是个移位密码。凯撒密码加密解密。偏移12位就行。...

嵌入式开发-lin总线介绍 一.概述

1.1lin总线定义和历史 LIN总线&#xff08;Local Interconnect Network&#xff09;是一种基于UART/SCI&#xff08;Universal Asynchronous Receiver-Transmitter/Serial Communication Interface&#xff09;的低成本串行通信协议。它主要用于汽车、家电、办公设备等多种领域…...

羊城杯-2023-Crypto

文章目录 Danger_RSA题目描述&#xff1a;题目分析&#xff1a; Easy_3L题目描述&#xff1a;题目分析&#xff1a; XOR贯穿始终题目描述&#xff1a;题目分析&#xff1a; MCeorpkpleer题目描述&#xff1a;题目分析&#xff1a; SigninCrypto题目描述&#xff1a;题目分析&am…...

RabbitMQ快速上手及讲解

前言&#xff1a;在介绍RabbitMQ之前&#xff0c;我们先来看下面一个场景&#xff1a; 1.1.1.1 异步处理 场景说明&#xff1a; 用户注册后&#xff0c;需要发注册邮件和注册短信&#xff0c;传统的做法有两种 1.串行的方式 (1)串行方式&#xff1a;将注册信息写入数据库后&a…...

使用多线程std::thread发挥多核计算优势(解答)

使用多线程std::thread发挥多核计算优势&#xff08;题目&#xff09; 单核无能为力 如果我们的电脑只有一个核&#xff0c;那么我们没有什么更好的办法可以让我们的程序更快。 因为这个作业限制了你修改算法函数。你唯一能做的就是利用你电脑的多核。 使用多线程 由于我们…...

MySQL分页查询详解:优化大数据集的LIMIT和OFFSET

最近在工作中&#xff0c;我们遇到了一个需求&#xff0c;甲方要求直接从数据库导出一个业务模块中所有使用中的工单信息。为了实现这一目标&#xff0c;我编写了一条SQL查询语句&#xff0c;并请求DBA协助导出数据。尽管工单数量并不多&#xff0c;只有3000多条&#xff0c;但…...

Java微服务集成TranslateGemma:企业级翻译中台构建

Java微服务集成TranslateGemma&#xff1a;企业级翻译中台构建 1. 为什么需要企业级翻译中台 最近在给一家跨境电商平台做技术咨询时&#xff0c;客户提到一个很实际的问题&#xff1a;他们的客服系统、商品管理系统、营销内容平台各自维护着不同的翻译逻辑。客服用的是第三方…...

ComputeSharp未来展望:GPU计算在.NET生态中的发展路线图

ComputeSharp未来展望&#xff1a;GPU计算在.NET生态中的发展路线图 【免费下载链接】ComputeSharp A .NET library to run C# code in parallel on the GPU through DX12, D2D1, and dynamically generated HLSL compute and pixel shaders, with the goal of making GPU comp…...

突破限速:8大网盘直链解析方案全解析

突破限速&#xff1a;8大网盘直链解析方案全解析 【免费下载链接】Online-disk-direct-link-download-assistant 可以获取网盘文件真实下载地址。基于【网盘直链下载助手】修改&#xff08;改自6.1.4版本&#xff09; &#xff0c;自用&#xff0c;去推广&#xff0c;无需输入“…...

嵌入式开发代码版本比较工具与技巧

1. 嵌入式开发中的代码版本差异查看方法在嵌入式开发过程中&#xff0c;代码版本管理是每个工程师必须掌握的核心技能。随着项目迭代和功能更新&#xff0c;我们经常需要比较不同版本代码之间的差异&#xff0c;无论是为了代码审查、问题排查还是版本合并。作为一名嵌入式开发者…...

从卡顿到流畅:Win11Debloat开源工具3步解决Windows系统优化难题

从卡顿到流畅&#xff1a;Win11Debloat开源工具3步解决Windows系统优化难题 【免费下载链接】Win11Debloat 一个简单的PowerShell脚本&#xff0c;用于从Windows中移除预装的无用软件&#xff0c;禁用遥测&#xff0c;从Windows搜索中移除Bing&#xff0c;以及执行各种其他更改…...

springboot+vue基于web的校园商铺摊位管理系统

目录功能模块分析技术实现要点扩展功能建议数据库设计关键表项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作##同行可拿货,招校园代理 ,本人源头供货商功能模块分析 后台管理模块&#xff08;SpringBoot&#xff09; 管理员登…...

别再硬调PI参数了!手把手教你用MATLAB/Simulink搞定PMSM FOC电流环整定(附模型下载)

永磁同步电机FOC控制&#xff1a;从电流环整定到系统优化的工程实践 永磁同步电机&#xff08;PMSM&#xff09;因其高效率、高功率密度和优异的动态性能&#xff0c;在工业驱动、电动汽车和航空航天等领域得到广泛应用。而磁场定向控制&#xff08;FOC&#xff09;作为PMSM的主…...

数字一阶低通滤波器在嵌入式系统中的应用:从理论到代码实现(附MATLAB验证)

数字一阶低通滤波器在嵌入式系统中的工程实践&#xff1a;从参数设计到代码优化 在嵌入式系统开发中&#xff0c;信号处理是一个永恒的话题。无论是传感器数据采集、电机控制还是通信系统&#xff0c;原始信号往往混杂着各种噪声。数字一阶低通滤波器以其计算量小、实现简单的特…...

开源密码测试工具ArchivePasswordTestTool:从加密困境到文件解锁的完整方案

开源密码测试工具ArchivePasswordTestTool&#xff1a;从加密困境到文件解锁的完整方案 【免费下载链接】ArchivePasswordTestTool 利用7zip测试压缩包的功能 对加密压缩包进行自动化测试密码 项目地址: https://gitcode.com/gh_mirrors/ar/ArchivePasswordTestTool 问题…...

双指针-15. 三数之和

文章目录1.题解2.机考代码3.知识点讲解1.res.add(Arrays.asList(nums[i], nums[l], nums[r]));2.Arrays常用方法大厂机考 / 算法题里 Arrays 只需要掌握这 5 个1. Arrays.sort(nums) —— 排序&#xff08;最常用&#xff09;2. Arrays.toString(nums) —— 打印数组3. Arrays.…...