2024.05.26 第 399 场周赛

2024-05-27 00:44
文章标签 周赛 26 399 2024.05

本文主要是介绍2024.05.26 第 399 场周赛,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Leetcode 第 399 场周赛

优质数对的总数 I

Leetcode 优质数对的总数 I

给你两个整数数组 nums1 和 nums2,长度分别为 n 和 m。同时给你一个正整数 k。
如果 nums1[i] 可以被 nums2[j] * k 整除,则称数对 (i, j) 为 优质数对(0 <= i <= n - 1, 0 <= j <= m - 1)。
返回** 优质数对 **的总数。

第 399 场周赛_1.png
遍历每一对数字,判断是否符合要求

完整代码

class Solution {public int numberOfPairs(int[] nums1, int[] nums2, int k) {int res = 0;int n = nums1.length;int m = nums2.length;for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {if (nums1[i] % (nums2[j] * k) == 0) res++;}}return res;}
}

压缩字符串 III

Leetcode 压缩字符串 III

给你一个字符串 word,请你使用以下算法进行压缩:

  • 从空字符串 comp 开始。当 word 不为空 时,执行以下操作:
    • 移除 word 的最长单字符前缀,该前缀由单一字符 c 重复多次组成,且该前缀长度 **最多 **为 9 。
    • 将前缀的长度和字符 c 追加到 comp 。

返回字符串 comp 。

第 399 场周赛_2.png
对字母进行计数,加入字符串即可。
注意:这里不要使用 String 保存结果,使用可追加的 StringBuffer 或 StringBuilder 保存结果。

完整代码

class Solution {public String compressedString(String word) {int n = word.length();StringBuilder res = new StringBuilder();char c = word.charAt(0);int count = 1;for (int i = 1; i < n; i++) {if (word.charAt(i) == c) count++;else {if (count != 0) {res.append(count);res.append(c);}count = 1;c = word.charAt(i);}if (count == 9) {res.append(count);res.append(c);count = 0;}}if (count != 0) {res.append(count);res.append(c);}return String.valueOf(res);    }
}

后记:

  1. String、StringBuffer 和 StringBuilder 的异同
    - String 把数据放在常量池中,默认一常量形式保存,且有 final 修饰,因此不可追加,追加之后会创建新的对象。
    - StringBuffer 是可追加的,且线程安全,但是效率比 StringBuilder 低。
    - StringBuilder 也是可追加的,但是线程不安全,但效率是最高的。

优质数对的总数 II

Leetcode 优质数对的总数 II

题目与 1 相同,只是数据量更大。

提示:

  • 1 <= n, m <= 105
  • 1 <= nums1[i], nums2[j] <= 106
  • 1 <= k <= 103

先将数据排序,如果当前被除数大于除数,后面就不需要判断了。

完整代码

class Solution {public long numberOfPairs(int[] nums1, int[] nums2, int k) {int res = 0;List<Integer> list1 = new ArrayList<Integer>();List<Integer> list2 = new ArrayList<Integer>();int n = nums1.length;int m = nums2.length;for (int i = 0; i < n; i++) {list1.add(nums1[i]);}for (int i = 0; i < m; i++) {list2.add(nums2[i] * k);}Collections.sort(list1);Collections.sort(list2);for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {if (list2.get(j) > list1.get(i)) break;if (list1.get(i) % list2.get(j) == 0) res++;}}return res;}
}

还是超出时间限制(哭)。

不包含相邻元素的子序列

Leetcode 不包含相邻元素的子序列

给你一个整数数组 nums 和一个二维数组 queries,其中 queries[i] = [posi, xi]。
对于每个查询 i,首先将 nums[posi] 设置为 xi,然后计算查询 i 的答案,该答案为 nums 中 **不包含相邻元素 **的子序列的 **最大 **和。
返回所有查询的答案之和。
由于最终答案可能非常大,返回其对 109 + 7 取余 的结果。
子序列 是指从另一个数组中删除一些或不删除元素而不改变剩余元素顺序得到的数组。

第 399 场周赛_4.png

没写,之后再看。。。。。

这篇关于2024.05.26 第 399 场周赛的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1006045

相关文章

Linux下MySQL8.0.26安装教程

《Linux下MySQL8.0.26安装教程》文章详细介绍了如何在Linux系统上安装和配置MySQL,包括下载、解压、安装依赖、启动服务、获取默认密码、设置密码、支持远程登录以及创建表,感兴趣的朋友... 目录1.找到官网下载位置1.访问mysql存档2.下载社区版3.百度网盘中2.linux安装配置1.

LeetCode 第414场周赛个人题解

目录 Q1. 将日期转换为二进制表示 原题链接 思路分析 AC代码 Q2. 范围内整数的最大得分 原题链接 思路分析 AC代码 Q3. 到达数组末尾的最大得分 原题链接 思路分析 AC代码 Q4. 吃掉所有兵需要的最多移动次数 原题链接 思路分析 AC代码 Q1. 将日期转换为二进制表示 原题链接 Q1. 将日期转换为二进制表示 思路分析

LeetCode --- 413周赛

题目列表 3274. 检查棋盘方格颜色是否相同 3275. 第 K 近障碍物查询 3276. 选择矩阵中单元格的最大得分 3277. 查询子数组最大异或值 一、检查棋盘方格颜色是否相同 题目给定两个字符串来表示两个方格的坐标,让我们判断这两个方格的颜色是否相同,这里我们要观察棋盘的颜色特征,我们就会发现奇数行的奇数列和偶数行的偶数列是黑色,其他都是白色,所以我们可以直接计算出每个方

每日一题~cf 970 div3 (A思维,B小模拟,C二分,D排列数建图成环,E 26个字母暴力+前缀和,F 逆元,G 数论gcd )

A 题意: 有 a 个1 ,b 个2.问是否能将这些数划分为两个数值相等的集合。 输出 YES 或者 NO —————— 问题等价于 将数组 分成两个数值相同的数组。所以sum 应该是偶数。也就是说 1 的个数是偶数。在i1的个数是偶数的情况下,将 2 分成两份,如果2 的个数是偶数,OK。如果是奇数那么需要1来补齐,如果1 的个数大于等于2那么可以补齐。(1 的个数是偶数,需要2个1来补齐,剩下

26 页高清大数据开发代码速查表,提升效率必备!【可下载】

各大互联网公司高价抢夺数据人才,为谋求长期发展、获得高薪,很多人转行到了大数据领域。这条路人才虽缺,但要成为优秀大数据工程师并不轻松:别的不说,光学习新技术,巩固旧知识,就需要耗费大量时间精力,实属不易。 为帮助大家提高学习效率,方便日后查找和使用,这里整理了一份大数据开发代码速查表资料,内容包括 Spark、Hadoop 及 Hive 等大数据开发主要知识点。 由于篇幅原因,下面只展示了速查表

26 页高清分布式集群代码速查表,提升效率必备!【可下载】

各大互联网公司高价抢夺海量数据处理、分布式系统开发人才,为谋求长期发展、获得高薪,很多人转行到了大数据、分布式、集群运维领域。这条路人才虽缺,但并不轻松:别的不说,光学习新技术,巩固旧知识,就需要耗费大量时间精力,实属不易。 为帮助大家提高学习和工作效率,方便日后查找和使用其中涉及的知识点,这里整理了一份分布式/集群开发、运维的代码速查表资料,内容包括 Spark、Hadoop 及 Hive 等

(176)时序收敛--->(26)时序收敛二六

1 目录 (a)FPGA简介 (b)Verilog简介 (c)时钟简介 (d)时序收敛二六 (e)结束 1 FPGA简介 (a)FPGA(Field Programmable Gate Array)是在PAL (可编程阵列逻辑)、GAL(通用阵列逻辑)等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了

『功能项目』DOTween动态文字【26】

打开上一篇25协程生成怪物模型的项目, 本章要做的事情是用DOTween插件做一个动态文字效果 首先在资源商店中免费下载一个DOTween插件 新建脚本:DowteenFlicker.cs 编写脚本: using DG.Tweening;using UnityEngine;using UnityEngine.UI;public class DowteenFli

振动分析-26-频域分析之深入理解功率谱和功率谱密度的计算过程

1 什么是PSD(功率谱密度) 功率谱密度(Power Spectral Density),以及其与Autopower(自功率谱)的区别。 1.1 PSD的定义 PSD——Power Spectral Density是表征信号的功率能量与频率的关系的物理量。 PSD经常用来研究随机振动信号。 PSD通常根据频率分辨率做归一化。 对于振动数据,PSD的单位通常是g^2/Hz。这个单位看起来不

[LeetCode] 399. Evaluate Division

题:https://leetcode.com/problems/evaluate-division/ 题目大意 给定 equations 和式子结果 values ,求 queries 的结果。 思路 dfs 先构建一个图。 queries 是两点之间 边的权重 乘积。 class Solution {double dfs(List<Double> resList,Map<String