代码随想录算法训练营DAY3第一章 数组part02

目录

[209. 长度最小的子数组](#209. 长度最小的子数组)

[59. 螺旋矩阵 II](#59. 螺旋矩阵 II)

[58. 区间和(第九期模拟笔试)](#58. 区间和(第九期模拟笔试))


209. 长度最小的子数组

cpp 复制代码
class Solution {
public:
    int minSubArrayLen(int target, vector<int>& nums) {
        int sum = 0;
        int len = nums.size() + 1;
        int right = 0;
        for (int left = 0; left < nums.size(); left++) {
            while (sum < target && right < nums.size()) {
                sum += nums[right++];
            }
            if (sum >= target) {
                len = min(right - left, len);
            }
            sum -= nums[left];
        }
        if (len == nums.size() + 1) {
            return 0;
        }
        return len;
    }
};

59. 螺旋矩阵 II

cpp 复制代码
class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {
        int num = 1;
        int top = 0;
        int bottom = n - 1;
        int left = 0;
        int right = n - 1;
        vector<vector<int>> ans(n, vector<int>(n));
        while (left <= right && top <= bottom) {
            // 左到右,上界收缩
            for (int i = left; i <= right; i++) {
                ans[top][i] = num++;
            }
            top++;
            // 上到下,右界收缩
            for (int i = top; i <= bottom; i++) {
                ans[i][right] = num++;
            }
            right--;
            // 右到左,下界收缩
            if (top <= bottom) {
                for (int i = right; i >= left; i--) {
                    ans[bottom][i] = num++;
                }
                bottom--;
            }
            // 下到上,左界收缩
            if (left <= right) {
                for (int i = bottom; i >= top; i--) {
                    ans[i][left] = num++;
                }
                left++;
            }
        }
        return ans;
    }
};

58. 区间和(第九期模拟笔试)

cpp 复制代码
#include<iostream>
#include<vector>
using namespace std;
int main(){
    int n;
    cin>>n;
    vector<int> s(n+1);
    for(int i=1;i<=n;i++){
        cin>>s[i];
        s[i]+=s[i-1];
    }
    int a,b;
    while(cin>>a>>b){
        cout<<s[b+1]-s[a]<<endl;
    }
    return 0;
}
相关推荐
2601_962071571 小时前
【Java报错已解决】org.springframework.beans.factory.BeanCreationException
java·开发语言
zww89491112 小时前
酒馆预约系统开发实战:从需求分析到上线全流程指南
java·eclipse
淡海水2 小时前
07-04-并发-ConcurrentBag-T-工作窃取WorkStealing算法
开发语言·算法·c#·bag·concurrent·workstealing
leobertlan3 小时前
好玩系列:训练一个神经网络模型指导小孩玩游戏2-大局观教练
算法
Tisfy3 小时前
LeetCode 3876.构造奇偶一致的数组 II:三种情况分类讨论(其实还是脑筋急转弯)
算法·leetcode·题解·脑筋急转弯
乐迪信息4 小时前
智慧港口船舶AI算法实现在线状态监测
大数据·人工智能·深度学习·算法·计算机视觉
zww89491114 小时前
匿名树洞系统开发实战:从需求分析到部署指南
java·eclipse
kiracrimson5 小时前
从缓存的角度看链表与线性表的差异
数据结构·链表·缓存
黑马程序员毕设6 小时前
基于Java的医院药品管理系统的优化设计与实现
java·开发语言·spring boot·小程序·架构·课程设计·毕设
木井巳6 小时前
【BFS/DFS 解决 FloodFill 算法】太平洋大西洋水流问题
java·算法·leetcode·深度优先·广度优先·宽度优先·推荐算法