分组循环A
模板
i = 0
while(i<n){start = iwhile( i<n && check(args) ) {i+=1}
}
1. LC 3011 判断一个数组是否可以变为有序
这题我比赛时用的并查集。看灵神视频学了个分组循环的做法。
对于每个分组,如果可以交换,则扩展分组的窗口,直至达到尽头或者不能交换为止。这样这个分组里的数都是可以任意交换的,因此就可以对这个分组进行排序。对每个分组排序后如果能使得整个数组有序,那么就成功。
import java.util.Arrays;class Solution {public boolean canSortArray(int[] nums) {int i = 0;int start;int n = nums.length;while(i<n){start = i;while(i<n && check(nums[start],nums[i])){i++;}Arrays.sort(nums,start,i);}return inOrder(nums);}private boolean check(int num1,int num2){return Integer.bitCount(num1)==Integer.bitCount(num2);}private boolean inOrder(int[] nums){for (int i = 1; i < nums.length; i++) {if(nums[i-1]>nums[i]){return false;}}return true;}
}
2. LC 1446 连续字符
入门题。分组记录每个连续字符子串长度,维护最大值。
class Solution {public int maxPower(String s) {char[] ch = s.toCharArray();int i = 0;int n = ch.length;int max = 0;while(i<n){char c = ch[i];int start = i;while(i<n&&ch[i]==c){i++;}max = Math.max(max,i-start);}return max;}
}
3. LC 1869 哪种连续子字符串更长
入门题。分组记录0/1子串长度,维护最大值,最后比较。
class Solution {public boolean checkZeroOnes(String s) {int max0 = 0;int max1 = 1;char[] ch = s.toCharArray();int i = 0;int n = ch.length;while(i< n){int start = i;char c = ch[i];boolean which = c =='1';while(i<n && c == ch[i]){i++;}if(which){max1 = Math.max(max1,i-start);}else{max0 = Math.max(max0,i-start);}}return max1>max0;}
}
4. LC 1957 删除字符使字符串变好
入门题。分组检查连续相同子串长度,超过2就缩减到2,拼到答案里即可。
class Solution {public String makeFancyString(String s) {char[] ch = s.toCharArray();StringBuilder sb = new StringBuilder();int i = 0;int n = ch.length;while(i<n){int start = i;while(i<n && ch[start]==ch[i]){i++;}int cnt = Math.min(2,i-start);sb.append(String.valueOf(ch[start]).repeat(cnt));}return sb.toString();}
}
5. LC 2110 股票平滑下跌阶段的数目
入门题。分组查询每段平滑下跌阶段。贡献是(l+1)*l/2(等差数列),累加即可。
class Solution {public long getDescentPeriods(int[] prices) {int i = 0;int start;int n = prices.length;long ans = 0;while(i<n){start = i;while(i<n-1 && prices[i]==prices[i+1]+1 ){i++;}int cnt = i-start+1;ans += (long) (cnt + 1) *cnt/2;i++;}return ans;}
}
6. LC 2765 最长交替子数组
每日一题+入门题。分组查询交替子数组长度,维护最大值
class Solution {public int alternatingSubarray(int[] nums) {int n = nums.length;int max = -1;int i = 0;int start;while(i<n){start = i;int diff = 1;while(i<n-1 && nums[i+1]-nums[i]==diff){diff *= -1;i++;}if(i>start){max = Math.max(max,i-start+1);}if(!(i>start)){i++;}}return max;}
}
相关文章:
分组循环A
模板 i 0 while(i<n){start iwhile( i<n && check(args) ) {i1} }1. LC 3011 判断一个数组是否可以变为有序 这题我比赛时用的并查集。看灵神视频学了个分组循环的做法。 对于每个分组,如果可以交换,则扩展分组的窗口,直至…...
《WebKit 技术内幕》学习之九(4): JavaScript引擎
4 实践——高效的JavaScript代码 4.1 编程方式 关于如何使用JavaScript语言来编写高效的代码,有很多铺天盖地的经验分享,以及很多特别好的建议,读者可以搜索相关的词条,就能获得一些你可能需要的结果。同时,本节希望…...
[SpringBoot2.6.13]FastJsonHttpMessageConverter不生效
文章目录 错误描述问题分析打印目前所有的消息处理器寻找适配版本消息解释器加载顺序 错误原因正确写法使用最新版本fastjson(2024-1-22)配置fastjson2消息转换器(保留系统原消息转换器)替换消息转换器配置fastjson2 错误描述 采用Bean的方式配置FastJsonHttpMessageConverter…...
(delphi11最新学习资料) Object Pascal 学习笔记---第3章第一节(简单语句与复合语句)
Object Pascal 学习笔记,Delphi 11 编程语言的完整介绍 作者: Marco Cantu 笔记:豆豆爸 3.1 简单语句与复合语句 编程指令通常称为语句。一个程序块可以由多个语句组成。有两种类型的语句,简单语句和复合语句。当语句不包含任何其他子语…...
Unity - 简单音频
“Test_04” AudioTest public class AudioTest : MonoBehaviour {// 声明音频// AudioClippublic AudioClip music;public AudioClip se;// 声明播放器组件private AudioSource player;void Start(){// 获取播放器组件player GetComponent<AudioSource>();// 赋值…...
SpringCloud中服务间通信(应用间通信)-亲测有效-源码下载-连载2
1、微服务概述 本案例主要解决微服务之间的相互调用问题 如果已经理解什么是微服务,可以直接跳到实战。 本案例采用springBoot3.1.7springCloud2022.0.4版本测试 本案例使用springboot2.7.x版本测试代码相同 1、微服务是分布式架构,那么为什么要需要…...
Axios取消请求:AbortController
AbortController AbortController() 构造函数创建了一个新的 AbortController 实例。MDN官网给出了一个利用AbortController取消下载视频的例子。 核心逻辑是:利用AbortController接口的只读属性signal标记fetch请求;然后在需要取消请求的时候࿰…...
【江科大】STM32:(超级详细)定时器输出比较
文章目录 输出比较单元特点 高级定时器:均有4个通道 PWM简介PWM(Pulse Width Modulation)脉冲宽度调制输出比较通道PWM基本结构基本定时器 参数计算捕获/比较通道的输出部分详细介绍如下: 舵机介绍硬件电路 直流电机介绍ÿ…...
Go 复合数据类型
1. 数组(array)(OK) 数组数组的概念数组是具有固定长度且拥有零个或多个相同数据类型元素的序列 i. 元素的数据类型相同 ii. 长度固定的序列 iii. 零个或多个元素的序列 与 slice 对比 由于数组的长度固定,所以在 G…...
Redis(01)——常用指令
基础指令 select 数字:切换到其他数据库flushdb:清空当前数据库flushall:清空所有数据库dbsize:查看数据库大小exists key1[key2 …]:判断当前的key是否存在keys *:查看所有的keyexpire key 时间ÿ…...
基本语法和 package 与 jar
3.基本语法 1.输入输出 // 导入 java.util 包中的 Scanner 类 import java.util.Scanner;// 定义名为 ScannerExample 的公共类 public class ScannerExample {// 主方法,程序的入口点public static void main(String[] args) {// 创建 Scanner 对象,用…...
本地读取Excel文件并进行数据压缩传递到服务器
在项目开发过程中,读取excel文件,可能存在几百或几百万条数据内容,那么对于大型文件来说,我们应该如何思考对于大型文件的读取操作以及性能的注意事项。 类库:Papa Parse - Powerful CSV Parser for JavaScript 第一步…...
【开源】基于JAVA的停车场收费系统
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 停车位模块2.2 车辆模块2.3 停车收费模块2.4 IC卡模块2.5 IC卡挂失模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 停车场表3.2.2 车辆表3.2.3 停车收费表3.2.4 IC 卡表3.2.5 IC 卡挂失表 四、系统实现五、核心代码…...
基于java+Springboot操作系统教学交流平台详细设计实现
基于javaSpringboot操作系统教学交流平台详细设计实现 🍅 作者主页 央顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制系统…...
Nginx 基础使用
目录结构 进入Nginx的主目录我们可以看到这些文件夹 client_body_temp conf fastcgi_temp html logs proxy_temp sbin scgi_temp uwsgi_temp其中这几个文件夹在刚安装后是没有的,主要用来存放运行过程中的临时文件 client_body_temp fastcgi_temp proxy_temp scg…...
JavaEE:多线程(2):线程状态,线程安全
目录 线程状态 线程安全 线程不安全 加锁 互斥性 可重入 死锁 死锁的解决方法 Java标准库中线程安全类 内存可见性引起的线程安全问题 等待和通知机制 线程饿死 wait notify 线程状态 就绪:线程随时可以去CPU上执行,也包含在CPU上执行的…...
Flutter 自定义AppBar实现滚动渐变
1、使用ListView实现上下滚动。 2、使用Stack:允许将其子部件放在彼此的顶部,第一个子部件将放置在底部。所以AppBar,写在ListView下面。 3、MediaQuery.removePadding:当使用ListView的时候发现,顶部有块默认的Padd…...
编程语言MoonBit新增矩阵函数的语法糖
MoonBit更新 1. 新增矩阵函数的语法糖 新增矩阵函数的语法糖,用于方便地定义局部函数和具有模式匹配的匿名函数: fn init {fn boolean_or { // 带有模式匹配的局部函数true, _ > true_, true > true_, _ > false}fn apply(f, x) {f(x)}le…...
Angular:跨域请求携带 cookie
新建拦截器,设置 XMLHttpRequest:withCredentials 属性 1. 新建文件夹 http-interceptors 该文件夹下可有多个不同用途的拦截器2. 新建拦截器 common.interceptor.ts import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from "an…...
【C++】list容器迭代器的模拟实现
list容器内部基本都是链表形式实现,这里的迭代器实现的逻辑需要注意C语言中指针的转换。 list容器如同数据结构中的队列,通常用链式结构进行存储。在这个容器中,我们可以模仿系统的逻辑,在头结点后设置一个“ 哨兵 ”,…...
基于RAG与向量数据库的智能知识库系统构建实战
1. 项目概述:当AI成为你的“第二大脑”最近在折腾一个挺有意思的开源项目,叫IIMS-By-AI。这个名字乍一看有点唬人,IIMS是“Intelligent Information Management System”的缩写,翻译过来就是“智能信息管理系统”。但它的核心玩法…...
从零部署openclaw:Docker Compose实战与避坑指南
1. 项目概述与核心价值最近在部署一个名为“openclaw”的开源项目时,我遇到了不少坑。这个项目在GitHub上的仓库是xujfcn/openclaw-deploy,从名字就能看出来,它是一个专注于部署的仓库,而不是主项目本身。我花了不少时间才搞清楚&…...
Ubuntu系统部署Cursor AI编辑器:从安装配置到实战优化全指南
1. 项目概述:在Ubuntu上快速部署Cursor AI编辑器最近在开发者圈子里,Cursor这款AI驱动的代码编辑器热度持续攀升。作为一个深度依赖Ubuntu进行日常开发的程序员,我自然也第一时间尝试了在Ubuntu 22.04 LTS上安装和配置Cursor。整个过程比预想…...
别只装AlexNet了!手把手教你在MATLAB里玩转更多预训练模型(VGG, ResNet, MobileNet安装指南)
别只装AlexNet了!手把手教你在MATLAB里玩转更多预训练模型(VGG, ResNet, MobileNet安装指南) 当你第一次在MATLAB中调用alexnet函数时,那种"开箱即用"的体验确实令人惊艳。但就像一位米其林大厨不会只满足于使用基础厨具…...
Linux后台任务日志管理实战:从nohup.out到更专业的systemd与日志轮转
Linux后台任务日志管理实战:从nohup.out到更专业的systemd与日志轮转 在Linux服务器运维中,后台任务管理是每个开发者都会遇到的场景。想象一下这样的情形:你使用nohup启动了一个Web服务,几个月后突然收到磁盘空间告警࿰…...
40希尔排序 - 以递减间距进行插入排序
希尔排序 - 以递减间距进行插入排序 040希尔排序:用长距离跳跃打破速度壁垒📰 5W1H 发明者故事 Who(何人)- 发明者是谁? 发明者:唐纳德希尔(Donald L. Shell) 背景:希尔…...
音频智能切片工具:快速解放双手的终极音频分割解决方案
音频智能切片工具:快速解放双手的终极音频分割解决方案 【免费下载链接】audio-slicer A simple GUI application that slices audio with silence detection 项目地址: https://gitcode.com/gh_mirrors/aud/audio-slicer 还在为处理冗长的音频文件而烦恼吗&…...
RAG实战指南:让大模型学会检索外部知识
RAG:给 LLM 装上知识库——从原理到完整可运行系统LLM 的知识截止在训练日期。RAG 让 AI 能「查资料」回答——这是 Agent 有「长期记忆」的基础。一、为什么需要 RAG 用户:HarmonyOS NEXT 的 Observed 装饰器怎么用?没有 RAG 的 LLM…...
面试题详解:Agent 记忆管理全解析——历史对话获取、摘要记忆、事实记忆、知识图谱记忆一次讲透
1. 什么是 Agent 记忆管理?为什么这件事越来越重要?1.1 如果没有记忆,Agent 就只能“活在当下”很多人第一次接触 Agent 时,会觉得记忆似乎就是保存聊天记录。可一旦系统要跨多轮、多天、甚至跨任务持续工作,就会发现单…...
XUnity Auto Translator:3分钟为Unity游戏添加多语言支持的终极解决方案
XUnity Auto Translator:3分钟为Unity游戏添加多语言支持的终极解决方案 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 你是否曾因语言障碍而放弃心爱的Unity游戏?或者作为开发者…...
