力扣第374场周赛题解

这一场周赛的题目是比较难的一次,写了1个多小时就写了两个题目。

首先第一题:

纯水题,遍历然后进行一下判断就可以解决了。这边就不放代码了。

第二题:

这个题目,我觉得难度非常大,其实代码量也不大都是很难想到解决的方案,在比赛的时候也没写出这个题目,还浪费了很多时间。这个题目的思路其实是,对于数字来说,只有两种情况,我们设置初始区间为[0,s-1],s设置为1,也就是初始区间什么都没有,然后添加数字,假设这个数字为a,产生的新区间为[0+a,s+a-1],在a小于等于s的情况,0+a<=s-1;也就是说新生成的区间与老区间中间没有空隙,所以此时就可以把区间扩展到[0,s+a-1],s=s+a;但是如果a>s,新产生的区间与老区间就肯定会有空隙我们就肯定需要添加新的数字,然后通过贪心的思想,添加s可以把当前的区间正好扩大一倍,这是只添加一个数字可以做到最大的区间扩张,大于s会产生空隙,小于s扩张的范围会减少。所以这个时候这个问题的解决方案就出来了,a<=s,i++,s=s+a;a>s,添加数字加一,s=s*2;

实现代码:

class Solution {public int minimumAddedCoins(int[] coins, int target) {Arrays.sort(coins);    int ans=0;int a=1;int i=0;while(a<=target){if(i<coins.length&&coins[i]<=a){a+=coins[i];i++;}else{a*=2;ans++;    }}return ans;}
}

第三题:

这个题目在比赛的时候写出来了,这个题目思路还是比上面那个题目容易想出来,首先看条件是需要相差至多为2,然后是每个字符恰好出现k次,这两个条件如果是同时去做的话,相关的处理就会比较麻烦,而且也容易超时间,所以最好的解决办法就是把有相邻字符超过2的字符串进行分组求和,这样对于每一组来说只有去考虑子字符串中每个字符恰好出现k次这一个条件,这个用hash表应该没什么问题,当然优化的话就可以使用滑动窗口,因为要求每一个字符串出现k次所以很明显,满足要求的子字符串的长度为n*k,这样就可以求出来所有满足条件的子字符串了。

代码:

class Solution {public int countCompleteSubstrings(String word, int k) {int n = word.length();int ans = 0;for (int i = 0; i < n; ) {int st = i;for (i++; i < n && Math.abs(word.charAt(i) - word.charAt(i - 1)) <= 2; i++) ;ans += count(word.substring(st, i), k);}return ans;}private int count(String S, int k) {char[] s = S.toCharArray();int res = 0;for (int m = 1; m <= 26 && k * m <= s.length; m++) {int[] freq = new int[26];for (int right = 0; right < s.length; right++) {freq[s[right] - 'a']++;int left = right + 1 - k * m;if (left >= 0) {boolean flag = true;for (int i = 0; i < 26; i++) {if (freq[i] > 0 && freq[i] != k) {flag = false;break;}}if (flag) {res++;}freq[s[left] - 'a']--;}}}return res;}
}

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

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

相关文章

IOday3作业

1> 使用文件IO完成对图像的读写操作 #include<myhead.h>int main(int argc, const char *argv[]) {//只读打开图片int fd-1;if((fd open("./R-C.bmp",O_RDWR))-1){perror("open");return -1;}//向后便宜两个字节找到大小的起始地址lseek(fd,2,S…

【数据结构】二叉树的实现

目录 1. 前言2. 二叉树的实现2.1 创建一棵树2.2 前序遍历2.2.1 分析2.2.2 代码实现2.2.3 递归展开图 2.3 中序遍历2.3.1 分析2.3.2 代码实现2.3.3 递归展开图 2.4 后序遍历2.4.1 分析2.4.2 代码实现2.4.3 递归展开图 2.5 求节点个数2.5.1 分析2.5.2 代码实现 2.6 求叶子节点个数…

Linux 调试器 --- g d b 使用

目录 一&#xff1a;gdb简介 二&#xff1a;示例代码 三&#xff1a;使用 1.启动gdb 2.各种指令 <1>: 查看源代码 <2>:设置断点 <3>:查看断点信息 <4>:删除断点 <5>: run <6>:逐过程调试 <7>:逐语句调试 <8>:查…

TrustZone​之在安全状态之间切换

如果处理器处于NS.EL1,而软件想要转移到S.EL1,应该如何实现呢? 要改变安全状态,无论是向上还是向下,执行都必须经过EL3,如下图所示: 前面的图表显示了在不同安全状态之间移动涉及的步骤的示例序列。逐步进行解释: 进入较高的异常级别需要一个异常。通常,此异常…

【JavaWeb】项目后端部分统一解决方案

项目后端部分统一解决方案 文章目录 项目后端部分统一解决方案一、异步响应规范格式类二、MD5加密工具类三、JwtHelper工具类四、CrosFilter过滤器 一、异步响应规范格式类 Result类 package com.pro.common;/*** 全局统一返回结果类**/ public class Result<T> {// 返…

HTML可以使用属性访问AJAX、CSS过渡、WebSocket和服务器发送事件?

最近发现一个有意思的开源库&#xff1a;Htmx 在 GitHub 的描述中: htmx 被称为“允许您直接在HTML中使用属性访问AJAX、CSS过渡、WebSocket和服务器发送事件&#xff0c;以便您可以以超文本的简洁和强大之处构建现代用户界面”。 什么是htmx&#xff1f; 简而言之&#xff0c…

相关基础知识

本文引注&#xff1a; https://zhuanlan.zhihu.com/p/447221519 1.方差 2.自协方差矩阵 3.自相关矩阵 4.互协方差矩阵 5.互相关矩阵 6.相关系数 7.自相关函数、自协方差函数与功率谱密度 8.互相关函数、互协方差函数与互功率谱密度

强大JavaScript 技巧

浏览器 01、实现全屏 当您需要将当前屏幕显示为全屏时 function fullScreen() { const el document.documentElement const rfs el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullscreen i…

时间选择器

<el-form-item label"时间范围"><!-- <el-date-picker size"small"v-model"createTime"type"daterange"range-separator"至"start-placeholder"请输入起始创建时间"end-placeholder"请输入终止创…

前端常见手写代码题集

1. 手写Object.create 思路&#xff1a;将传入的对象作为原型 function create(obj) {function F() { }F.prototype objreturn new F() }2. 手写 instanceof 思路&#xff1a;不断地从左边的原型链上去找 function MyInstanceof(left, right) {let l Object.getPrototype…

无线网优AP、SW发现控制器

目录 无线网优解决的问题 1、信号覆盖不足的原因 2、信道繁忙 3、非802.11干扰 4、协商速率低 5、漫游效果差 6、有线带宽阻塞 无线网优方法 交换机发现与激活 一&#xff0c;交换机发现控制器方式 1、二层广播 2、DHCP option43方式 3、DNS域名解析方式 4、trou…

Springboot之整合Swagger3

依赖 <dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version></dependency>配置 application.yaml spring:# mvc这部分解决swagger3在新版本Springboot中无…

C++模板基础及代码实战

C模板基础及代码实战 C 模板概览 泛型编程的支持 C 不仅为面向对象编程提供了语言支持&#xff0c;还支持泛型编程。正如第6章《设计可重用性》中讨论的&#xff0c;泛型编程的目标是编写可重用的代码。C 中支持泛型编程的基本工具是模板。虽然模板不严格是面向对象的特性&a…

C/C++---------------LeetCode第350. 两个数组的交集 II

两个数组的交集|| 题目及要求双指针哈希表在main内使用 题目及要求 给你两个整数数组 nums1 和 nums2 &#xff0c;请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数&#xff0c;应与元素在两个数组中都出现的次数一致&#xff08;如果出现次数不一致&#xff0…

基于springboot + vue大学生竞赛管理系统

qq&#xff08;2829419543&#xff09;获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;springboot 前端&#xff1a;采用vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xf…

基于单片机的智能健康监测手环的设计

目 录 1 绪论... 2 1.1 引言... 2 1.2 智能手环的国内外研究现状... 2 1.3 课题的研究意义... 3 1.4 本文的研究内容和章节安排... 4 2 智能手环系统设计方案... 5 2.1 系统总体设计方案... 5 2.2 主芯片选择... 5 2.3 显示方案的选择... 6 2.4 倾角传感器的选择... 6 2.5 心率…

【AIGC】AI作图最全提示词prompt集合(收藏级)

目录 一、正向和负向提示词 二、作图参数 你好&#xff0c;我是giszz. AI做图真是太爽了&#xff0c;解放生产力&#xff0c;发展生产力。 但是&#xff0c;你是不是也总疑惑&#xff0c;为什么别人的图&#xff0c;表现力那么丰富呢&#xff0c;而且指哪打哪&#xff0c;要…

DFT(离散傅里叶变换)的通俗理解

本文包含了博主对离散傅里叶变换&#xff0c;负频率&#xff0c;实信号与复信号频谱的理解&#xff0c;如有不妥&#xff0c;欢迎各位批评指正与讨论。 文章目录 DFT的理解信号的频谱实信号的频谱复信号的频谱 DFT的理解 傅里叶变换是一种将信号从时域转换到频域的数学工具。…

SQL Server事务(Transaction)

5. 事务(Transaction) 5.1. 事务概念 事务是关系库中不可分割的一系列数据库操作,这些操作必须要么整体成功,要么整体失败。事务维护数据完整性,保证数据库总是处于一致性状态。虽然,各关系库中事务实现和操作的具体细节有所不同,但基本概念和功能完全相同,而具体操作…

通信标准化协会,信通院及量子信息网络产业联盟调研玻色量子,共绘实用化量子未来!

8月14日&#xff0c;中国通信标准化协会&#xff0c;信通院标准所及量子信息网络产业联盟等单位领导走访调研北京玻色量子科技有限公司&#xff08;以下简称“玻色量子”&#xff09;&#xff0c;参观了玻色量子公司及自建的十万颗粒洁净度的光量子信息技术实验室&#x1f517;…