LeetCode面试题Day6|LeetCode238 除自身以外数组的乘积、LeetCode134 加油站
题目1:
指路:
. - 力扣(LeetCode)238 除自身以外数组的乘积
思路与分析:
除去自身元素求其他元素的乘积,或许第一反应会是数组元素积乘再除以遍历到的元素,定义一个结果数组再对应放结果值,但是这里会有元素值“0”,会有“division by zero”的错误提示,而且题目描述里也明确给定了“without ...division...”。那么不妨换一种思路,将遍历到的元素作为界限划分出左范围和右范围。定义两个数组分别盛放左右范围的累乘元素,最后定义一个结果数组使下标与左右范围内的结果对应即可。
代码:
class Solution {
public:vector<int> productExceptSelf(vector<int>& nums) {int n = nums.size();vector<int> L(n, 0); // 左范围vector<int> R(n, 0); // 右范围L[0] = 1; R[n - 1] = 1; // 初始化for (int i = 1; i < n; i++) {L[i] = nums[i - 1] * L[i - 1]; // 左范围累乘}for (int i = n - 2; i >= 0; i--) {R[i] = nums[i + 1] * R[i + 1]; // 右范围累乘}vector<int> ans(n, 0); // 定义结果集for (int i = 0; i < n; i++) {ans[i] = L[i] * R[i]; // 左右范围元素累乘}return ans;}
};
题目2:
指路:
. - 力扣(LeetCode)134 加油站
思路与分析:
本题我们尝试用贪心的方法求解。首先,排除结果一定的情况(一定到不了和一定到得了)。首先我们采取顺序遍历的方式,很显然当油箱的总量小于花费的总量时一定到不了目的地,反之,当油箱内的油量大于等于将要消耗的油量则可以完成任务。接下来看不一定的情况。我们不知道会在哪一个节点上就决定了不会到达终点,那么我们采取倒序遍历的方式,当剩余的油量始终为正时证明从该节点出发是正确的选择。
代码:
class Solution {
public:int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {int curSum = 0;int min = INT_MAX; // 从起点出发油箱里的最小值int n = gas.size();for (int i = 0; i < n; i++) {int rest = gas[i] - cost[i];curSum += rest;if (curSum < min) {min = curSum;}}// gas总和<cost总和,一定跑不完全程if (curSum < 0) return -1;// 正向顺序遍历,油量差为正,足以跑完全程if (min >= 0) return 0;// 倒序遍历求使油量为正的节点for (int i = n - 1; i >= 0; i--) {int rest = gas[i] - cost[i];min += rest;if (min >= 0) {return i;}}return -1;}
};
相关文章:
LeetCode面试题Day6|LeetCode238 除自身以外数组的乘积、LeetCode134 加油站
题目1: 指路: . - 力扣(LeetCode)238 除自身以外数组的乘积 思路与分析: 除去自身元素求其他元素的乘积,或许第一反应会是数组元素积乘再除以遍历到的元素,定义一个结果数组再对应放结果值&…...
猫头虎分享:Python库 FastAPI 的简介、安装、用法详解入门教程
🐯 猫头虎分享:Python库 FastAPI 的简介、安装、用法详解入门教程 🚀 📄 摘要 作为一名专注于Python和人工智能开发的技术博主,猫头虎经常在开发过程中遇到各种挑战。最近,有粉丝问到如何高效地构建API&a…...
python连接MySQL数据库使用pymysql
开头 经过这么一段时间的学生信息管理系统的摸爬滚打,不断的学习更新的知识,不断修改自己的认知,针对pymysql以及MySQL数据库的知识做个总结,以纪念我这段时间的学习。 目录 开头 pymysql的使用流程 1.导入pymysql的工具包 方…...
AI时代下的编程趋势:程序员如何提升核心竞争力
随着人工智能和机器学习技术的飞速发展,大型语言模型和AI生成代码(AIGC)工具如ChatGPT、Midjourney、Claude等层出不穷,AI辅助编程逐渐成为现实。在这一变革的浪潮中,程序员群体面临着前所未有的挑战和机遇。一些人担忧…...
C#:基本语法
写在前面 本人在实习过程需要用C#进行开发,但本人之前的技术栈是C方向,所以在菜鸟教程上速通了一下C#的基本语法,总的来说和C还是非常相似的。 1 关键字 using关键字:使用命名空间class:使用类 2 注释 /* 这个程序…...
Redisson 实现分布式锁
文章目录 Redisson 是什么Redisson 使用客户端模式单节点模式哨兵模式主从模式集群模式Spring Boot 整合 Redisson 中的锁Redisson 可重入锁Redisson 公平锁Redisson 联锁Redisson 读写锁Redisson Redlock Redisson 的看门狗机制RedLock 解决单体故障问题如何使用 RedLockMarti…...
VMware ESXi学习笔记
esxi网络模型: 物理网卡: 一般会有多个物理网卡,用于管理口和其他(vsan) 虚拟交换机:创建虚拟交换机时,会要求选择至少1个上行链路(物理网卡) 端口组:一般一个虚拟交换机会创建两个端口组,一个虚机使用&a…...
Python 函数(2)
2、函数 2.1、函数传递列表 将列表传递给函数后,函数就能直接访问其内容。 下列为一个实例:将一个名字列表传递给一个名为greet_users()的函数,这个函数将会向列表中的每一个元素执行相应的信息。 def greet_users(name):for name in name…...
c++文件的读写
平常我们在编完代码后,基本都是从键盘输入,从屏幕输出(显示),但可不可以从其他地方输入输出呢? ………………………………………………………………………………………………………………… 其实可以&…...
春秋云境 | 文件上传 | CVE-2022-30887
目录 靶标介绍 开启靶场 上传一句话木马 蚁剑连接 找到 flag 靶标介绍 多语言药房管理系统 (MPMS) 是用 PHP 和 MySQL 开发的, 该软件的主要目的是在药房和客户之间提供一套接口,客户是该软件的主要用户。该软件有助于为药房业务创建一个综合数据库࿰…...
大模型+XDR!打开网络安全攻防演练新范式!
网络安全领域面临着日益复杂的挑战,外部攻击与内部安全威胁交织的双重压力。技术革新成为筑牢安全防线的关键,随着新一代技术的崛起,特别是大数据与人工智能的深度融合,引领着网络安全进入全新阶段。 通过构建网络安全大模型&…...
C语言----字符串
字符串 第一种定义 利用字符数组 双引号的方式定义字符串 char str1[4]"abc"; printf("%s\n",str1); 细节1: 在底层,实际存储的时候,c语言还是会帮我们把字符串"abc"转换成字符数组进行保存,并且在末尾还…...
ThreadLocal 详解(三)内存泄露原因,以及强弱引用
1、ThreadLocal内存泄漏 在Threadlocal的内部静态类中Entry将Threadlocal作为一个key,值作为value保存,他继承WeakReference,super(k),代表了Threadlocal对象是一个弱引用; static class Entry extends WeakReference…...
【Android面试八股文】说一说Android开发模式之MVC、MVP、MVVM的区别?
文章目录 一、 MVC(Model-View-Controller)二、 MVP(Model-View-Presenter)三、MVVM(Model-View-ViewModel)四、示例代码4.1. MVC 示例4.2. MVP 示例4.3. MVVM 示例五、总结在Android开发中, MVC(Model-View-Controller)MVP(Model-View-Presenter)MVVM(Model-View-…...
多叉树的深度优先遍历(以电话号码的字母组合为例)
在我们的座机上,都有这种数字与字母对应的按键。 以此为例,讲解多叉树的深度优先遍历 问题 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同…...
【YashanDB数据库】PHP无法通过ODBC连接到数据库
【问题分类】驱动使用 【关键字】ODBC、驱动使用、PHP 【问题描述】应用使用php-fpmnginx架构,通过php的ODBC拓展连接YashanDB时出现报错: [unixODBC][Driver Manager]Cant open lib /home/yashandb_odbc/libyas_odbc.so: file not found但是在应用所…...
C++ | Leetcode C++题解之第326题3的幂
题目: 题解: class Solution { public:bool isPowerOfThree(int n) {return n > 0 && 1162261467 % n 0;} };...
Ubuntu20.4上搭建FFMPEG开发环境
编译ffmpeg命令如下: 1.安装yasm(ffmpeg里面有汇编语言的部分,所以需要安装一下yasm) wget 5http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz tar xvzf yasm-1.3.0.tar.gz cd yasm-1.3.0 ./configure make && make install 2.安装nasm(2.13以上…...
谷粒商城实战笔记-144-性能压测-性能监控-堆内存与垃圾回收
文章目录 一,两种类型的应用1,CPU密集型应用示例:Apache Spark 2,IO密集型应用示例:MySQL 二,监控 我们通过压力测试对接口进行了性能评估,以确定其是否满足性能要求。 如果不符合,就…...
大模型综述
《Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond》论文阅读 模型架构 两种架构: encoder-decoder架构/encoder架构:T5/BERTdecoder架构:GPT4 特点LLMsencoder-decoderorencoder-onlyBERT-style训练:掩码语言模型类型:…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...
Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...
C++实现分布式网络通信框架RPC(2)——rpc发布端
有了上篇文章的项目的基本知识的了解,现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...
