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

代码随想录算法训练营第二天| 209.长度最小的子数组、59.螺旋矩阵II、区间和

长度最小的子数组

题目链接:https://leetcode.cn/problems/minimum-size-subarray-sum/

文章讲解:https://programmercarl.com/0209.%E9%95%BF%E5%BA%A6%E6%9C%80%E5%B0%8F%E7%9A%84%E5%AD%90%E6%95%B0%E7%BB%84.html
视频讲解:https://www.bilibili.com/video/BV1tZ4y1q7XE
解法:建立两个指针(i、j),相当于双指针发,但其实叫做移动窗口,j也就是在for循环里的指针为窗口终止位置,目的是提前遍历所有的数字,后面的i则是窗口开始位置,这样就免除了两个for循环,大大节省和提升了空间和速度。当j不断的向后移动,知道j所遍历的每个数字之和大于或者等于这个所给的target了之后,再开始缩小这个长度也就是向后移动i,这样就可以检查是否还有比现有的长度还短的满足条件的情况。先将result值给到最大,再看这个不断更新的result值跟现有符合条件的长度做对比,取到最短的那个,最后检查result值是否还为最大值,如果是最大值表示这个数组怎么加都加不到target值,则返回0,如果不是最大值,则返回这个result。注意:return的写法和思路

点击查看代码
class Solution {public int minSubArrayLen(int target, int[] nums) {int i = 0;int result = Integer.MAX_VALUE;int sum = 0;for(int j = 0; j<nums.length; j++){sum += nums[j];while(sum>=target){result = Math.min(result, j-i+1);sum -= nums[i++];}}return result == Integer.MAX_VALUE ? 0 : result;}}

59.螺旋矩阵II

题目链接:https://leetcode.cn/problems/spiral-matrix-ii/
文章讲解:https://programmercarl.com/0059.%E8%9E%BA%E6%97%8B%E7%9F%A9%E9%98%B5II.html
视频讲解:https://www.bilibili.com/video/BV1SL4y1N7mV/
解法:确保绕没一圈的行和列的时候方法是一致的,不会是不同边不一样的绕法,这样只用写一种方法且不会很乱,注意边界条件,如建立初始值startX和startY,用i和j表达行和列,并且每一行每一列都不包含最后一个数值

点击查看代码
class Solution {public int[][] generateMatrix(int n) {int[][] nums = new int[n][n];int startX = 0;int startY = 0;int i,j;int offset = 1;int count = 1; //中间填的数字int loop = 1; //当前圈数while(loop<=n/2){for(j = startY;j<n-offset;j++){nums[startX][j] = count++;}for(i = startX; i<n-offset; i++){nums[i][j] = count++;}for(;j>startY;j--){nums[i][j] = count++;}for(;i>startX;i--){nums[i][j] = count++;}startX++;startY++;offset++;loop++;}if(n%2 == 1){nums[startX][startY] = count;}return nums;}
}

区间和

用一个数组存储Array,另一个则是前几项之和

点击查看代码
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int[] vec = new int[n];int[] p = new int[n];int presum = 0;for (int i = 0; i < n; i++) {vec[i] = scanner.nextInt();presum += vec[i];p[i] = presum;}while (scanner.hasNextInt()) {int a = scanner.nextInt();int b = scanner.nextInt();int sum;if (a == 0) {sum = p[b];} else {sum = p[b] - p[a - 1];}System.out.println(sum);}scanner.close();}
}
http://www.jsqmd.com/news/440758/

相关文章:

  • 2026年比较好的事件相机系统公司推荐:DVS传感器事件相机生产商哪家强 - 行业平台推荐
  • 2026年专业深度测评:抖店代运营厂家排名前五权威榜单 - 电商资讯
  • 2026年口碑好的冷冻浓缩干燥器品牌推荐:离心浓缩干燥器/冷冻离心浓缩干燥器/真空离心浓缩干燥器生产厂家推荐几家 - 行业平台推荐
  • 3-5午夜盘思
  • 蓝桥/15/B/4 数字接龙
  • yolov11训练流程 - MKT
  • 数据交易可视化分析:PowerBI实战案例教程
  • 直击痛点!AI应用架构师对金融市场AI监控系统的改进思路
  • 2026年优秀的辊筒输送机厂家推荐:滚筒输送机/链条输送机专业制造厂家推荐 - 行业平台推荐
  • 2026年诚信的共板法兰风管工厂推荐:漂珠硅晶防火风管厂家综合实力对比 - 行业平台推荐
  • 5.42.三种类型的补偿网络(1-传递、策略)
  • 亲测不踩雷!5 家高口碑小程序制作公司,无隐形消费 - 企业数字化改造和转型
  • 2026年热门的载带成型机工厂推荐:载带成型机实力品牌厂家推荐 - 行业平台推荐
  • SolidWorks二次开发(C#)-swDoc.IGetActiveConfiguration获取当前配置属性-删除所有属性
  • python: Flyweight Pattern
  • 2026 杭州小程序开发公司排名 TOP10|权威盘点与选型指南 - 企业数字化改造和转型
  • 2026 小程序服务商深度盘点:定制 / 模板 / 商城全覆盖 - 企业数字化改造和转型
  • 2026年知名的铁罐工厂推荐:马口铁罐/铁罐定制/蛋卷铁罐品牌厂家哪家靠谱 - 行业平台推荐
  • 2026年知名的烽创挂面机工厂推荐:烽创面条生产线生产商哪家强 - 行业平台推荐
  • 图像分类任务-猫狗大战(计算机视觉领域区分猫和狗照片)
  • 【Python高级编程】近似串匹配 - 详解
  • 霍尔流量计设计和脉冲计数
  • 2026年热门的南京热机械疲劳试验机品牌推荐:南京旋转弯曲疲劳试验机厂家推荐与选购指南 - 行业平台推荐
  • 2026年质量好的亚克力加工厂家推荐:亚克力制品实力工厂推荐 - 行业平台推荐
  • nginx配置文件
  • 2026年正规的地砖LED显示屏厂家推荐:裸眼3DLED显示屏/上海Micro-LED显示屏/上海海康威视LED显示屏精选厂家推荐 - 行业平台推荐
  • 【实战案例】基于YOLOv8的亚洲107种鸟类图像分类与目标检测体系_2
  • Flink与AI集成:实时机器学习模型部署实践
  • 华为OD机试(机考)双机位C卷 - 找单词 (Python JAVA C/C++ JS GO)
  • CWT-CNN-BiLSTM基于连续小波变换和卷积神经网络-双向长短期记忆网络故障诊断MATLAB代码