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

leetcode - 365周赛

一,2873.有序三元组中的最大值 I

 该题的数据范围小,直接遍历:

class Solution {public long maximumTripletValue(int[] nums) {int n = nums.length;long ans = 0;for(int i=0; i<n-2; i++){for(int j=i+1; j<n-1; j++){for(int k=j+1; k<n; k++){ans = Math.max(ans,(long)(nums[i]-nums[j])*nums[k]);}}}return ans;}
}

 二,2874.有序三元组中的最大值 II

题目与上一题一样,只不过数据范围变大了,不能使用暴力,会超出时间限制。

按照 j 来遍历数组:

        先定义一个数组,从后向前遍历,得到数组后缀最大值,在定义一个数组,从前向后遍历,得到数组前缀最大值,最后按照 j 从前往后遍历。

class Solution {public long maximumTripletValue(int[] nums) {int n = nums.length;long ans = 0;int[] suf_max = new int[n];suf_max[n-1] = nums[n-1];for(int i=n-2; i>=0; i--){suf_max[i] = Math.max(suf_max[i+1],nums[i]);}int[] pre_max = new int[n];pre_max[0] = nums[0];for(int i=1; i<n; i++){pre_max[i] = Math.max(pre_max[i-1],nums[i]);}for(int j=1; j<n-1; j++){ans = Math.max(ans, (long)(pre_max[j-1]-nums[j])*suf_max[j+1]);}return ans;}
}
//解法二
class Solution {public long maximumTripletValue(int[] nums) {long ans = 0;int pre_max = 0;//前缀最大值 - nums[i]int max_diff = 0;//(nums[i]-nums[j])最大值for(int x : nums){//x = nums[k]ans = Math.max(ans,(long)max_diff*x);//x = nums[j]max_diff = Math.max(max_diff,pre_max-x);//x = nums[i]pre_max = Math.max(pre_max,x);}return ans;}
}

 三,2875.无限数组的最短子数组

 该题是一个滑动窗口题:我们实际上是计算环形数组中,是否有子数组和为 target % sum(nums),如果有就返回 子数组长度 + target / sum * len(nums),没有就返回 -1.

class Solution {public int minSizeSubarray(int[] nums, int target) {int sum = 0;int total = 0;int ans = Integer.MAX_VALUE;int n = nums.length;for(int x : nums) total += x;for(int l=0,r=0; l<n; r++){sum += nums[r%n];while(sum > target%total){sum -= nums[l%n];l++;}if(sum == target%total)ans = Math.min(ans,r-l+1);}return ans==Integer.MAX_VALUE?-1:ans+target/total*n;}
}

 四,2876.有向图访问计数

class Solution {public int[] countVisitedNodes(List<Integer> edges) {int n = edges.size();List<Integer>[] rg = new ArrayList[n];int[] deg = new int[n];for(int i=0; i<n; i++)rg[i] = new ArrayList<>();for(int i=0; i<n; i++){int y = edges.get(i);//i -> yrg[y].add(i);//统计指向y的节点deg[y]++;//统计指向y的节点个数}//拓扑排序Queue<Integer> queue = new LinkedList<>();for(int i=0; i<n; i++){if(deg[i] == 0)//叶子节点queue.add(i);}while(!queue.isEmpty()){int x = queue.poll();int y = edges.get(x);//x -> yif(--deg[y] == 0)//删除树枝和叶子,保留环queue.add(y);}int[] ans = new int[n];for(int i=0; i<n; i++){if(deg[i] <= 0) continue;List<Integer> ring = new ArrayList<>();for(int x = i; ; x = edges.get(x)){deg[x] = -1;//防止重复ring.add(x);if(edges.get(x) == i)break;}for(int x : ring)rdfs(x,ring.size(),rg,deg,ans);}return ans;}//得到深度void rdfs(int x, int depth, List<Integer>[] rg, int[] deg, int[] ans){ans[x] = depth;for(int y : rg[x]){if(deg[y] == 0)rdfs(y,depth+1,rg,deg,ans);}}
}

相关文章:

leetcode - 365周赛

一&#xff0c;2873.有序三元组中的最大值 I ​ 该题的数据范围小&#xff0c;直接遍历&#xff1a; class Solution {public long maximumTripletValue(int[] nums) {int n nums.length;long ans 0;for(int i0; i<n-2; i){for(int ji1; j<n-1; j){for(int kj1; k<…...

为什么mac上有的软件删除不掉?

对于Mac用户来说&#xff0c;软件卸载通常是一个相对简单的过程。然而&#xff0c;有时你可能会发现某些软件似乎“顽固不化”&#xff0c;即使按照常规方式尝试卸载&#xff0c;也依然存在于你的电脑上。这到底是为什么呢&#xff1f;本文将探讨这一问题的可能原因。 1.卸载失…...

【vue3】wacth监听,监听ref定义的数据,监听reactive定义的数据,详解踩坑点

假期第二篇&#xff0c;对于基础的知识点&#xff0c;我感觉自己还是很薄弱的。 趁着假期&#xff0c;再去复习一遍 之前已经记录了一篇【vue3基础知识点-computed和watch】 今天在学习的过程中发现&#xff0c;之前记录的这一篇果然是很基础的&#xff0c;很多东西都讲的不够…...

跨境电商如何通过软文建立品牌形象?

在全球产业链结构重塑后的今天&#xff0c;越来越多的企业意识到想要可持续发展&#xff0c;就需要在建立品牌形象&#xff0c;在用户心中留下深刻印象&#xff0c;那么应该如何有效建立品牌形象呢&#xff1f;可以利用软文来打造品牌形象&#xff0c;接下来媒介盒子就告诉大家…...

我做了一个简易P图(参数图)分析软件

P图(即参数图&#xff0c;Parameter Diagram)&#xff0c;是一个结构化的工具&#xff0c;帮助大家对产品更好地进行分析。 典型P图格式 P图最好是和FMEA软件联动起来&#xff0c;如国可工软的FMEA软件有P图分析这个功能。 单纯的P图分析软件很少&#xff0c;为了方便做P图分…...

209.Flink(四):状态,按键分区,算子状态,状态后端。容错机制,检查点,保存点。状态一致性。flink与kafka整合

一、状态 1.概述 算子任务可以分为有状态、无状态两种。 无状态:filter,map这种,每次都是独立事件有状态:sum这种,每次处理数据需要额外一个状态值来辅助。这个额外的值就叫“状态”2.状态的分类 (1)托管状态(Managed State)和原始状态(Raw State) 托管状态就是由…...

rabbitmq查看节点信息命令失败

不影响访问rabbitmq&#xff0c;但是无法使用 命令查看节点信息 等 查看节点信息命令&#xff1a;rabbitmq-diagnostics status --node rabbitJHComputer Error: unable to perform an operation on node ‘rabbitJHComputer‘. Please see diagnostics informatio rabbitmq-…...

c语言动态内存分布

前言&#xff1a; 随着我们深入的学习c语言&#xff0c;之前使用的静态内存分配已经难以满足我们的实际需求。比如前面我们的通讯录功能的实现&#xff0c;如果只是静态内存分配&#xff0c;那么也就意味着程序开始的内存分配大小就是固定的&#xff0c;应该开多大的空间呢&am…...

1.3.2有理数减法(第一课时)作业设计

【学习目标】 1&#xff0e;理解有理数减法法则&#xff0c;能熟练地进行有理数的减法运算&#xff0e; 2&#xff0e;感受有理数减法与加法对立统一的辨证思想&#xff0c;体会转化的思想方法&#xff0e;...

vue3 -- ts封装 Turf.js地图常用方法

Turf.js中文网 地理空间分析库,处理各种地图算法 文档地址 安装 Turf 库 npm install @turf/turf创建src/hooks/useTurf.ts 文件1:获取线中心点 效果: 代码: useTurf.ts import * as turf from @turf/turf// 获取线中心点 export class CenterPointOfLine {...

Qt之实现圆形进度条

在Qt自带的控件中&#xff0c;只有垂直进度条、水平进度条两种。 在平时做页面开发时&#xff0c;有些时候会用到圆形进度条&#xff0c;比如说&#xff1a;下载某个文件的下载进度。 展示效果&#xff0c;如下图所示&#xff1a; 实现这个功能主要由以下几个重点&#xff1a…...

C# 图解教程 第5版 —— 第1章 C# 和 .NET 框架

文章目录 1.1 在 .NET 之前1.2 .NET 时代1.2.1 .NET 框架的组成1.2.2 大大改进的编程环境 1.3 编译成 CIL1.4 编译成本机代码并执行1.5 CLR1.6 CLI1.7 各种缩写1.8 C# 的演化1.9 C# 和 Windows 的演化&#xff08;*&#xff09; 1.1 在 .NET 之前 MFC&#xff08;Microsoft Fou…...

electronjs入门-聊天应用程序,与Electron.js通信

随着第一章中构建的应用程序&#xff0c;我们将开始将其与Electron框架中的模块集成&#xff0c;并以此为基础&#xff0c;以更实用的方式了解它们。 过程之间的通信 根据第二章中的解释&#xff0c;我们将发送每个进程之间的消息&#xff1b;具体来说联系人和聊天&#xff1…...

【自用】ubuntu 18.04 LTS安装opencv 3.4.16 + opencv_contrib 3.4.16

1.下载 opencv 3.4.16 opencv_contrib 3.4.16 其中&#xff0c;opencv_contrib解压后的多个文件夹复制到opencv内、合并 声明&#xff1a;尚未验证该方式是否可行 2.安装 参考博文&#xff1a; https://zhuanlan.zhihu.com/p/650792342 https://zhuanlan.zhihu.com/p/8719780…...

递归解析Json,实现生成可视化Tree+快速获取JsonPath | 京东云技术团队

内部平台的一个小功能点的实现过程&#xff0c;分享给大家&#xff1a; 递归解析Json&#xff0c;可以实现生成可视化Tree快速获取JsonPath。 步骤&#xff1a; 1.利用JsonPath读取根&#xff0c;获取JsonObject 2.递归层次遍历JsonObjec&#xff0c;保存结点信息 3.利用z…...

GraceUI相关的 知识

调试工具&#xff1a;UniApp提供了一些调试工具和插件&#xff0c;如uni-app-cli、调试器等&#xff0c;可以帮助你更好地定位和解决问题。同时&#xff0c;使用浏览器的开发者工具或模拟器的调试功能&#xff0c;可以更直观地观察页面效果和调试代码。 对于 GraceUI 的普通版本…...

三十二、【进阶】hash索引结构

1、hash索引结构 &#xff08;1&#xff09;简述&#xff1a; hash索引&#xff0c;就是采用一定的hash算法&#xff0c;将键值换算成新的hash值&#xff0c;映射到对应的槽位上&#xff0c;然后存储在hash表中。 &#xff08;2&#xff09;图示&#xff1a; 2、hash索引结构…...

如果有一天AI能自主编程了,程序员还有前途吗?

人们一直想知道人工智能&#xff08;AI&#xff09;等新技术将如何影响就业。如今的一个大问题是&#xff1a;人工智能会接管程序员的角色吗&#xff1f; 编程主要是关于人们学习计算机语言&#xff0c;这需要大量的时间和努力。但人工智能正在改变这一点。像 GPT-4 这样的系统…...

网络安全:个人信息保护,企业信息安全,国家网络安全的重要性

在当前的数字化时代&#xff0c;无论是个人&#xff0c;企业&#xff0c;还是国家&#xff0c;都会面临严重的网络安全威胁。网络安全不仅涉及我们的日常生活&#xff0c;也涉及到社会的稳定和国家的安全。这就需要我们高度重视网络安全&#xff0c;强化个人信息保护&#xff0…...

自动驾驶学习笔记(二)——Apollo入门

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《2023星火培训【感知专项营】》免费课程—>传送门 文章目录 前言 Ubuntu Linux文件系统 Linux指令…...

Qwen3.5-2B图文理解教程:GIF动图逐帧理解+动态内容总结生成方法

Qwen3.5-2B图文理解教程&#xff1a;GIF动图逐帧理解动态内容总结生成方法 1. 引言 Qwen3.5-2B是一款轻量化多模态基础模型&#xff0c;属于Qwen3.5系列的小参数版本&#xff08;20亿参数&#xff09;。这款模型主打低功耗、低门槛部署&#xff0c;特别适配端侧和边缘设备&am…...

从原理到代码:深入解析UniFormer的多头关系聚合器(MHRA)设计

从原理到代码&#xff1a;深入解析UniFormer的多头关系聚合器(MHRA)设计 视频理解领域近年来经历了从3D卷积网络到视觉Transformer的范式转变&#xff0c;但两者在时空特征提取上各有限制。3D CNN擅长捕捉局部时空特征却受限于固定感受野&#xff0c;而视觉Transformer虽能建模…...

Ubuntu 22.04 改IP重启失效?别急,可能是OVS的ovsdb-server在捣鬼

Ubuntu 22.04网络配置失效&#xff1a;当OVS与netplan的隐秘博弈 在虚拟化技术大行其道的今天&#xff0c;Open vSwitch&#xff08;OVS&#xff09;作为开源虚拟交换机的标杆&#xff0c;已经成为众多云计算平台和容器网络的核心组件。然而&#xff0c;当它遇上Ubuntu 22.04默…...

Windows 10终极指南:免费开启HEIC缩略图预览功能

Windows 10终极指南&#xff1a;免费开启HEIC缩略图预览功能 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbnails 还在为iPhone拍摄的照片在…...

Qwen3-ASR-0.6B作品集:Qwen3-ForcedAligner-0.6B时间戳精度图谱

Qwen3-ASR-0.6B作品集&#xff1a;Qwen3-ForcedAligner-0.6B时间戳精度图谱 你有没有想过&#xff0c;一段语音里的每个字、每个词&#xff0c;甚至每个音节&#xff0c;是在哪个精确的时间点被说出来的&#xff1f;这听起来像是电影后期制作里的黑科技&#xff0c;但现在&…...

第4章,[标签 Win32] :SysMets3 程序讲解01

专栏导航 上一篇&#xff1a;第4章&#xff0c;[标签 Win32] &#xff1a;SysMets3 程序代码 回到目录 下一篇&#xff1a;第4章&#xff0c;[标签 Win32] &#xff1a;SysMets3 程序讲解02&#xff0c;iVertPos 本节前言 对于本节所讲解的知识&#xff0c;有可能&#xf…...

探秘HackGPT:一款强大的AI辅助开发工具

探秘HackGPT&#xff1a;一款强大的AI辅助开发工具 【免费下载链接】hackGPT I leverage OpenAI and ChatGPT to do hackerish things 项目地址: https://gitcode.com/GitHub_Trending/ha/hackgpt 在快速发展的科技领域&#xff0c;人工智能&#xff08;AI&#xff09;已…...

软考缺考率超 50%?学长扒一扒易弃考的 7 类人,弃考后果别忽视

考软考的小伙伴应该都发现了一个现象&#xff1a;每次报名的人乌泱泱一大片&#xff0c;但真正走进考场的人却少了一大半&#xff0c;部分地区的缺考率甚至直接超了 50%。作为考过软考的学长&#xff0c;今天就跟大家好好聊聊&#xff0c;那些最后放弃考试的人&#xff0c;大多…...

XBeeATCmds库:Arduino嵌入式AT命令封装实践

1. XBeeATCmds 库概述&#xff1a;面向嵌入式开发者的 AT 命令封装实践XBeeATCmds 是一个专为 Arduino 平台设计的轻量级 C 封装库&#xff0c;其核心目标是将 Digi XBee 系列模块&#xff08;包括 Series 1、Series 2/2B、Series 3 及兼容 Zigbee、802.15.4、DigiMesh 协议的模…...

如何高效导出并打包SVN变更的Java文件

很多Java开发者在使用TortoiseSVN管理项目时&#xff0c;往往会面临一个难题:如何在不同版本之间快速导出修改过的Java文件&#xff0c;并将其打包成可部署的class文件&#xff1f;仅仅依靠TortoiseSVN导出差异文件&#xff0c;然后手动在IDE(如IntelliJ IDEA&#xff09;选择文…...