【力扣周赛】第 367 场周赛(⭐二维数组当成一维数组,前后缀分解)

文章目录

  • 竞赛链接
  • Q1:100096. 找出满足差值条件的下标 I
    • 竞赛时代码——暴力双循环
  • Q2:100084. 最短且字典序最小的美丽子字符串
    • 竞赛时代码——双指针
  • Q3:100101. 找出满足差值条件的下标 II
    • 竞赛时代码——记录可用最大最小值下标
  • Q4:8026. 构造乘积矩阵⭐(重要思想:把二维数组当成一维的)
    • 解法——前后缀分解
    • 相关题目——前后缀分解题单📕
  • 成绩记录

竞赛链接

https://leetcode.cn/contest/weekly-contest-367/

Q1:100096. 找出满足差值条件的下标 I

https://leetcode.cn/problems/find-indices-with-index-and-value-difference-i/description/
在这里插入图片描述

提示:
1 <= n == nums.length <= 100
0 <= nums[i] <= 50
0 <= indexDifference <= 100
0 <= valueDifference <= 50

竞赛时代码——暴力双循环

class Solution {public int[] findIndices(int[] nums, int indexDifference, int valueDifference) {int n = nums.length;for (int i = 0; i < n; ++i) {for (int j = i; j < n; ++j) {if (j - i >= indexDifference && Math.abs(nums[i] - nums[j]) >= valueDifference) return new int[]{i, j};}}return new int[]{-1, -1};}
}

Q2:100084. 最短且字典序最小的美丽子字符串

https://leetcode.cn/problems/shortest-and-lexicographically-smallest-beautiful-string/description/

在这里插入图片描述
提示:
1 <= s.length <= 100
1 <= k <= s.length

竞赛时代码——双指针

双指针取符合条件的子字符串,最后取出最小的那个。

class Solution {public String shortestBeautifulSubstring(String s, int k) {List<String> ans = new ArrayList<>();int mnL = Integer.MAX_VALUE, cnt = 0;for (int l = 0, r = 0; r < s.length(); ++r) {if (s.charAt(r) == '1') cnt++;while ((cnt > k || s.charAt(l) == '0') && l < r) {cnt -= (s.charAt(l++) == '1'? 1: 0);}if (cnt == k) {int len = r - l + 1;if (len < mnL) ans.clear();mnL = Math.min(mnL, len);if (len == mnL) ans.add(s.substring(l, r + 1));}}Collections.sort(ans);return ans.size() > 0? ans.get(0): "";}
}

Q3:100101. 找出满足差值条件的下标 II

https://leetcode.cn/problems/find-indices-with-index-and-value-difference-ii/description/

在这里插入图片描述
提示:
1 <= n == nums.length <= 10^5
0 <= nums[i] <= 10^9
0 <= indexDifference <= 10^5
0 <= valueDifference <= 10^9

竞赛时代码——记录可用最大最小值下标

class Solution {public int[] findIndices(int[] nums, int indexDifference, int valueDifference) {int n = nums.length;int mnId = 0, mxId = 0;         // 记录可用最大值和最小值的下标for (int l = 0, r = indexDifference; r < n; ++r, ++l) {if (nums[l] > nums[mxId]) mxId = l;if (nums[l] < nums[mnId]) mnId = l;if (nums[r] - nums[mnId] >= valueDifference) return new int[]{mnId, r};if (nums[mxId] - nums[r] >= valueDifference) return new int[]{mxId, r};}return new int[]{-1, -1};}
}

Q4:8026. 构造乘积矩阵⭐(重要思想:把二维数组当成一维的)

https://leetcode.cn/problems/construct-product-matrix/description/

在这里插入图片描述

提示:
1 <= n == grid.length <= 10^5
1 <= m == grid[i].length <= 10^5
2 <= n * m <= 10^5
1 <= grid[i][j] <= 10^9

解法——前后缀分解

https://leetcode.cn/problems/construct-product-matrix/solutions/2483137/zhou-sai-chang-kao-qian-hou-zhui-fen-jie-21hr/
核心思想把矩阵想象成一维的,我们需要算出每个数左边所有数的乘积,以及右边所有数的乘积,这都可以用递推得到。

class Solution {public int[][] constructProductMatrix(int[][] grid) {final int MOD = 12345;int m = grid.length, n = grid[0].length;int[][] p = new int[m][n];long suf = 1;       // 后缀乘积for (int i = m - 1; i >= 0; --i) {for (int j = n - 1; j >= 0; --j) {p[i][j] = (int)suf;suf = suf * grid[i][j] % MOD;}}long pre = 1;       // 前缀乘积for (int i = 0; i < m; ++i) {for (int j = 0; j < n; ++j) {p[i][j] = (int)(p[i][j] * pre % MOD);pre = pre * grid[i][j] % MOD;}}return p;}
}

相关题目——前后缀分解题单📕

见:【算法】前后缀分解题单

成绩记录

在这里插入图片描述

最后一题想了还久还是没做出来。。遗憾掉分
在这里插入图片描述

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

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

相关文章

会议OA小程序【首页布局】

目录 一. Flex布局介绍 1.1 什么是Flex布局 1.2 基本概念 1.3 Flex属性 二. 会议OA首页轮播图的实现 配置 Mock工具 swiper 效果展示 三. 会议OA首页会议信息布局 index.js index.wxml index.wxss 首页整体效果展示 一. Flex布局介绍 布局的传统解决方案&#x…

怎样正确做 Web 应用的压力测试?

Web应用&#xff0c;通俗来讲就是一个网站&#xff0c;主要依托于浏览器来访问其功能。 那怎么正确做网站的压力测试呢&#xff1f; 提到压力测试&#xff0c;我们想到的是服务端压力测试&#xff0c;其实这是片面的&#xff0c;完整的压力测试包含服务端压力测试和前端压力测…

059:mapboxGL监听键盘事件,通过eastTo控制左右旋转

第059个 点击查看专栏目录 本示例是介绍演示如何在vue+mapbox中监听键盘事件,通过eastTo控制左右旋转。 本例通过easeTo方法来加减一定数值的bearing角度,通过.addEventListener的方法来监听键盘的按键动作。这里一定要设置interactive: false, 否则展现不出来旋转效果。 直…

成功解决ModuleNotFoundError: No module named ‘docx.text.hyperlink‘

成功解决ModuleNotFoundError: No module named docx.text.hyperlink 目录 解决问题 解决思路 解决方法 解决问题 ModuleNotFoundError: No module named ‘docx.text.hyperlink‘ 解决思路 No module named docx.text.hyperlink"。这个错误通常表示你的代码中缺少了…

互联网Java工程师面试题·Java 总结篇·第十一弹

目录 90、简述一下你了解的设计模式。 91、用 Java 写一个单例类。 92、什么是 UML&#xff1f; 93、UML 中有哪些常用的图&#xff1f; 94、用 Java 写一个冒泡排序。 95、用 Java 写一个折半查找。 90、简述一下你了解的设计模式。 所谓设计模式&#xff0c;就是一套被…

AIO开放接口平台免费畅享ChatGPT聊天、联网互动、学术等服务!更有DALL·E 3最强AI绘图功能!

免费畅享&#xff01; AIO平台ChatGPT联网、聊天、学术等服务&#xff01; AIO开放接口平台 | 服务介绍 ALL IN ONE &#xff08;AIO&#xff09;API服务是LLM(大语言模型)开放接口平台&#xff1a;持续接入各种主流的大模型接口&#xff0c;并提供简单、易用、统一的API交互…

<蓝桥杯软件赛>零基础备赛20周--第1周

报名明年年4月蓝桥杯软件赛的同学们&#xff0c;如果你是大一零基础&#xff0c;目前懵懂中&#xff0c;不知该怎么办&#xff0c;可以看看本博客系列。 每个周末发1个博客&#xff0c;共20周&#xff0c;到明年3月初结束。跟上本博客的节奏&#xff0c;省赛三等奖跑不掉。 每周…

自然语言处理基础——词表示

词表示 把自然语言中最基本的语言单元——词转换为机器能够理解的 词表示能完成以下两个能力 词相似度计算 词与词之间语义的关系 近义词&上位词 使用近义词或上位词表示的问题 遗漏差异 遗漏新的释义 带有主观性 数据吸收 需要大量人工构建 One-Hot Representation …

spark获取hadoop服务token

spark 作业一直卡在accepted 问题现象问题排查1.查看yarn app日志2.问题分析与原因 问题现象 通过yarn-cluster模式提交spark作业&#xff0c;客户端日志一直卡在submit app&#xff0c;没有运行 问题排查 1.查看yarn app日志 appid已生成&#xff0c;通过yarn查看app状态为…

evilhiding:一款好用的shellcode免杀工具

文章目录 evilhiding工具浅析项目地址用法免杀测试声明 evilhiding shellcode loader,bypassav,免杀工具&#xff0c;一款基于python的shellcode免杀加载器 工具浅析 远控条件触发防沙箱花指令干扰loader和shellcode进行fernet加密触发器混淆干扰特征码自动刷新ico图片的md5…

王道计算机考研 操作系统学习笔记 + 完整思维导图篇章三: 内存管理

目录 内存管理概念 内存的基础知识 什么是内存&#xff1f;有何作用&#xff1f; 补充知识:几个常用的数量单位 指令的工作原理 三种装入方式 绝对装入 可重定位装入 动态重定位 从写程序到程序运行 链接的三种方式 总结 内存管理的概念 内存保护 内存空间的扩充 覆盖技…

基于SSM的教务管理系统运行教程

文章目录 1、前期必备1.1、所需软件版本说明1.2、下载源码1.3、下载开发工具1.4、下载JDK并配置环境变量1.5、安装数据库和数据库管理工具1.6、安装配置Maven 2、将SQL文件导入到数据库2.1、新建MySQL连接2.2、新建数据库并导入SQL 3、用Eclipse运行程序3.1、导入educationalMa…

极值点偏移2

已知 f ( x ) ln ⁡ x x f\left(x\right) \frac{\ln x}{x} f(x)xlnx​&#xff0c;若 f ( x ) a f\left(x\right) a f(x)a有两个不用的零点 x 1 , x 2 x_1, x_2 x1​,x2​&#xff0c;且 x 1 < x 2 x_1<x_2 x1​<x2​&#xff0c;求证&#xff1a; &#xff08;1…

uniapp无感刷新token实现过程

路漫漫其修远兮&#xff0c;前端道路逐渐迷茫&#xff0c;时隔好久好久终于想起了我还有一个小博客&#xff0c;最近在一直在弄uniapp&#xff0c;属实有被恶心到&#xff0c;但也至少会用了&#xff0c;最近实现了一个比较通用的功能&#xff0c;就是无感刷新token&#xff0c…

解决XXLJOB重复执行问题--Redis加锁+注解+AOP

基于Redis加锁注解AOP解决JOB重复执行问题 现象解决方案自定义注解定义AOP策略redis 加锁实践 现象 线上xxljob有时候会遇到同一个任务在调度的时候重复执行&#xff0c;如下图&#xff1a; 线上JOB服务运行了2个实例&#xff0c;有时候会重复调度到同一个实例&#xff0c;有…

Android推送问题排查

针对MobPush智能推送服务在使用过程中可能出现的问题&#xff0c;本文为各位开发者们带来了针对MobPush安卓端推送问题的解决办法。 TCP在线推送排查 排查TCP在线收不到推送时&#xff0c;我们先通过客户端的RegistrationId接口获取设备的唯一标识 示例&#xff1a; MobPush…

C#通过Entity Framework实体对数据表增删改查

目录 一、创建实体数据模型 1.建立数据库连接 2.建立EF实体模型 二.设计窗体和EF应用 1.窗体设计 2.应用程序设计 3.源码 4.生成效果 &#xff08;1&#xff09;查询 &#xff08;2&#xff09;修改 &#xff08;3&#xff09;删除 &#xff08;4&#xff09;增加 …

Ubuntu桌面环境的切换方法

你在找它吗&#xff1f; 国内麒麟、深度等系统虽然界面更炫&#xff0c;但——软件仓库与Ubuntu官方已不兼容。国内系统遇到稳定性问题&#xff0c;还是得拿Ubuntu做参照。今天本来介绍下这款Linux桌面。 为什么在 Ubuntu 上考虑 LXQt&#xff1f; 性能&#xff1a;LXQt设计为…

Uniapp软件库源码 全新带勋章功能(包含前后端源码)

Uniapp软件库全新带勋章功能&#xff0c;搭建好后台 在前端找到 util 这个文件 把两个js文件上面的填上自己的域名&#xff0c; 电脑需要下载&#xff1a;HBuilderX 登录账号 没有账号就注册账号&#xff0c;然后上传文件&#xff0c;打包选择 “发行” 可以打包app h5等等。…

【TES600】青翼科技基于XC7K325T与TMS320C6678的通用信号处理平台

板卡概述 TES600是一款基于FPGA&#xff0b;DSP协同处理架构的通用高性能实时信号处理平台&#xff0c;该平台采用1片TI的KeyStone系列多核浮点/定点DSP TMS320C6678作为主处理单元&#xff0c;采用1片Xilinx的Kintex-7系列FPGA XC7K325T作为协处理单元&#xff0c;具有1个FMC…