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

代码随想录算法训练营第二天| 977,209,59

977.有序数组的平方

* 数组平方后,最大值一定是在两侧 因为可以采用双指针

package algor.trainingcamp;import java.util.Arrays;/*** @author lizhe* @version 1.0* @description: https://leetcode.cn/problems/squares-of-a-sorted-array/** 有序数组的平方* 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。* @date 2023/4/6 12:30** 数组平方后,最大值一定是在两侧 因为可以采用双指针** 感觉这道难度在于是否能想到双指针 最大值在两侧 => 双指针解法*/
public class LeetCode977 {public int[] sortedSquares(int[] nums) {int idx = nums.length - 1;int[] res = new int[nums.length];int left = 0;int right = nums.length - 1;while(left <= right){if(nums[left] * nums[left] >= nums[right] * nums[right]){res[idx--] = nums[left] * nums[left];left++;}else{res[idx--] = nums[right] * nums[right];right--;}}return res;}public static void main(String[] args) {LeetCode977 demo = new LeetCode977();Arrays.stream(demo.sortedSquares(new int[]{-5, -1, 2, 3, 10})).forEach(System.out::println);}
}

209.长度最小的子数组

* 标准的滑动窗口题,主要是滑动窗口到达临界点如何处理左右边界

package algor.trainingcamp;/*** @author lizhe* @version 1.0* @description: https://leetcode.cn/problems/minimum-size-subarray-sum/** 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。** 来源:力扣(LeetCode)* 链接:https://leetcode.cn/problems/minimum-size-subarray-sum* 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。* @date 2023/4/6 12:42** 标准的滑动窗口,重点是在滑动窗口的临界点如何进行状态变化 和 记录终态** * 在临界点时: leftBound++,sum -= nums[leftBound],* * 全局变量记录len 对比每一次的结果 取最小*/
public class LeetCode209 {public int minSubArrayLen(int target, int[] nums) {int sum = 0;int len = Integer.MAX_VALUE;int leftBound = 0;// rightBound: 滑动窗口右侧for(int rightBound = 0;rightBound < nums.length;rightBound++){sum += nums[rightBound];/*** 达到滑动窗口临界*/while(sum >= target){int curLen = rightBound - leftBound + 1;len = Math.min(curLen, len);sum -= nums[leftBound];leftBound++;}}return len == Integer.MAX_VALUE ? 0 : len;}public static void main(String[] args) {LeetCode209 demo = new LeetCode209();System.out.println(demo.minSubArrayLen(7, new int[]{2, 3, 1, 2, 4, 3}));}
}

59.螺旋矩阵II

按照四个方向(左右)(上下)(右左)(下上)向内进行渐进模拟

package algor.trainingcamp;/*** @author lizhe* @version 1.0* @description: TODO* @date 2023/4/6 12:59** 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,* 且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。** 注意: 每一次操作之后,下次操作需要更加接近中心点*/
public class LeetCode59 {public int[][] generateMatrix(int n) {int[][] res = new int[n][n];int left = 0, right = n - 1;int up = 0, down = n - 1;int number = 1;while (number <= n * n) {// 左上到右上for (int i = left; i <= right; i++) {res[up][i] = number;++number;}++up;// 右上到右下for (int i = up; i <= down; i++) {res[i][right] = number;++number;}--right;// 右下到左下for (int i = right; i >= left; i--) {res[down][i] = number;++number;}--down;// 左下到左上for (int i = down; i >= up; i--) {res[i][left] = number;++number;}++left;}return res;}
}

相关文章:

代码随想录算法训练营第二天| 977,209,59

977.有序数组的平方 * 数组平方后&#xff0c;最大值一定是在两侧 因为可以采用双指针 package algor.trainingcamp;import java.util.Arrays;/*** author lizhe* version 1.0* description: https://leetcode.cn/problems/squares-of-a-sorted-array/** 有序数组的平方* 给…...

echarts 地图板块点击着色,移除着色

//选择省份变色 showProvince(name) { this.oldName name; this.mapChart && this.mapChart.dispatchAction({ type: geoSelect, name }) }, //移除上次点击变色 hideProvince() { this.mapChart && this.mapChart.dispatchAction({ type: geoUnSelect, name:…...

Visual Studio Code (vscode)自定义用户代码段快速打出for循环等

比如fori这样的快捷键就打不出代码块了 自定义用户代码块的方法: 工具栏 > 文件 > 首选项 > 用户代码片段 然后在弹出的搜索框中填写javascript.json 有提示 不用打全就行 (会有javascript选中) 打开配置文件javascript.json 这里面显示的就是编写代码块的例子 "…...

RocketMQ客户端配置详解

文章目录 ClientConfignamesrvAddrinstanceNameclientIPclientCallbackExecutorThreadspollNameServerIntervalheartbeatBrokerIntervalpersistConsumerOffsetIntervalvipChannelEnabledDefaultMQProducerproducerGroupcreateTopicKeydefaultTopicQueueNumssendMsgTimeoutcompr…...

STM32基于STM32CubeMX DMA + EXTI读取DS1307数据

STM32基于STM32CubeMX DMA EXTI读取DS1307数据✨申明&#xff1a;本文章仅发表在CSDN网站&#xff0c;任何其他网站&#xff0c;未注明来源&#xff0c;见此内容均为盗链和爬取&#xff0c;请多多尊重和支持原创!&#x1f341;对于文中所提供的相关资源链接将作不定期更换。&a…...

C#中的枚举器和迭代器

目录 一、可枚举类型和枚举器 1. 枚举器 2. 可枚举类 3. 使用 IEnumerable 和 IEnumerator 案例 4. 泛型枚举接口 二、迭代器 1. 使用迭代器创建枚举器 2. 使用迭代器创建可枚举类 3. 常见的迭代器模式 4. 产生多个枚举类型 5. 将迭代器作为属性 6. 迭代器的实质 一…...

中山大学人工智能学院——考研上岸经验贴

文章目录初试个人基本情况408数学英语政治复试初试 首先是初试成绩&#xff0c;中山大学在2.21号就公布了成绩和排名&#xff0c;这点很不错&#xff0c;有很多学校只公布成绩而没有排名。我的初试总分386&#xff0c;总排名第二&#xff0c;各个科目还是比较平均的&#xff1…...

ThreeJS-圣诞节表白3D贺卡(三十)

素材分享&#xff1a; 链接: https://pan.baidu.com/s/1l0mZWfkiLaXJfdvZ7XoY8w 提取码: i69h 提前预知&#xff1a; 向下滚动鼠标滑轮切换视角 关键代码&#xff1a; //初始化渲染器 const render new THREE.WebGLRenderer({ //设置抗锯齿&#xff0c;防失真 antialis: …...

040:cesium加载World Terrain地形图

第040个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中加载世界地形图。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共64行)相关API参考:专栏目标示例效果 配置方式 1)查看基础设置:https://xiaozh…...

逻辑运算和位移指令

逻辑运算指令 AND OR NOT XOR TEST 逻辑位移指令 SHL SHR 算术位移指令 SAL SAR 小循环位移指令 ROL ROR 大循环位移指令 RCL RCR AND 逻辑与指令 汇编格式&#xff1a;AND 目的操作数&#xff0c;源操作数 执行操作&#xff1a;&#xff08;目的操作数&#xff09;&…...

大家现在都去做Linux运维了吗?

运维自互联网出现以来&#xff0c;都是以基础技术部门的形式出现在各个互联网公司或者其他需要网络设备的公司里面&#xff0c;职位由来已久&#xff0c;也是多次徘徊在被淘汰的边缘。很多运维人都是靠着自己良好乐观的心态坚持到现在&#xff0c;接受新技术并学习新技术&#…...

Webpack的编译流程是怎么样的?webpack是如何工作的?

Webpack是一款非常流行的前端构建工具&#xff0c;用于将多个模块打包成一个或多个静态资源。它的工作原理是将模块的依赖关系图转化为最终的静态资源。Webpack的编译流程是一个非常复杂的过程&#xff0c;本文将从四个方面详细介绍Webpack的编译流程&#xff0c;分别是入口点分…...

【ZOJ 1151】Word Reversal 题解(字符串+模拟)

问题描述 对于每个单词列表&#xff0c;在不改变单词顺序的情况下&#xff0c;将每个单词反转输出一行。 此问题包含多个测试用例&#xff01; 多重输入的第一行是整数N&#xff0c;然后是空行&#xff0c;后面跟着N个输入块。每个输入块 采用问题描述中所示的格式。输入块之间…...

Dart语言操作符?和!的用法

一.基本使用 1. ? 操作符跟在类型后面&#xff0c;表示当前变量可为null。 int a null; //这句代码在有空安全时&#xff0c;编译会提示错误如果想给一个变量赋值null要如何处理呢&#xff1f;只需要在类型 后面添加操作符&#xff1f;即可&#xff0c;eg: int? a null…...

聚类 kmeans | 机器学习

聚类 刘建平 1、算法原理&#xff1a; 是一种无监督学习算法&#xff0c;其主要目的是将数据点分为k个簇&#xff0c;距离近的样本具有更高的相似度&#xff0c;距离近的划分为一个簇&#xff0c;一共划分k个簇&#xff0c;**让簇内距离小&#xff0c;簇间距离大。**距离是样…...

求职咨询Job Information

前言 加油 原文 求职咨询常用会话 ❶ I want to apply for a job which enables me to use my major. 我想要申请一个能用到我的专业知识的职业。 ❷ I have the capability of operating the computer. 我有操作电脑的能力。 ❸ My dream is to be an excellent interpret…...

怎么去除pdf文件的水印?好用软件说明

怎么去除pdf文件的水印&#xff1f;在某些情况下&#xff0c;PDF 文件的水印可能会影响文件的可读性和美观度。为了解决这个问题&#xff0c;您可以考虑使用其他方法来标记文档&#xff0c;例如添加页眉或页脚。另一种选择是使用透明度更低的水印&#xff0c;这样它就不会太过分…...

1-ELK+ Elasticsearch+head+kibana、企业内部日志分析系统

ELK:日志收集平台 ELK由ElasticSearch、Logstash和Kibana三个开源工具组成&#xff1a; 概念图 组件介绍 1、Elasticsearch&#xff1a; ElasticSearch是一个基于Lucene的开源分布式搜索服务。只搜索和分析日志 特点&#xff1a;分布式&#xff0c;零配置&#xff0c;自…...

ctfshow愚人杯web复现

easy_signin 题目url base64解码是face.png&#xff0c;尝试flag.txt和flag.php&#xff0c;base64加密后传入都不对&#xff0c;用index.php加密后传入&#xff0c;看源码 将后面的base64解密得到flag 被遗忘的反序列化 源码 <?php# 当前目录中有一个txt文件哦 error_r…...

商品推荐Promoting Products

目录 前言原文内容:推荐常用会话商品推荐常用会话商品推荐常用会话前言 加油 原文内容: ❶ I promise that our product is superior. 我承诺我们的产品比别的家的好。 ❷ Our product is very attractive to young people. 我们的产品很吸引年轻人。 ❸ I want to buy th…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

使用LangGraph和LangSmith构建多智能体人工智能系统

现在&#xff0c;通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战&#xff0c;比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...

MeshGPT 笔记

[2311.15475] MeshGPT: Generating Triangle Meshes with Decoder-Only Transformers https://library.scholarcy.com/try 真正意义上的AI生成三维模型MESHGPT来袭&#xff01;_哔哩哔哩_bilibili GitHub - lucidrains/meshgpt-pytorch: Implementation of MeshGPT, SOTA Me…...

作为点的对象CenterNet论文阅读

摘要 检测器将图像中的物体表示为轴对齐的边界框。大多数成功的目标检测方法都会枚举几乎完整的潜在目标位置列表&#xff0c;并对每一个位置进行分类。这种做法既浪费又低效&#xff0c;并且需要额外的后处理。在本文中&#xff0c;我们采取了不同的方法。我们将物体建模为单…...