【代码随想录算法训练营第37期 第二天 | LeetCode977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵II】

代码随想录算法训练营第37期 第二天 | LeetCode977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵II


一、977.有序数组的平方

解题代码C++:

cpp 复制代码
class Solution {
public:
    vector<int> sortedSquares(vector<int>& nums) {
        int len = nums.size();

        for(int i = 0; i < len; i ++)
            nums[i] = nums[i] * nums[i];
        
        sort(nums.begin(), nums.end());

        return nums;
    }
};

题目链接/文章讲解/视频讲解:
https://programmercarl.com/0977.有序数组的平方.html



二、209.长度最小的子数组

解题代码C++:

cpp 复制代码
class Solution {
public:
    int minSubArrayLen(int target, vector<int>& nums) {
        int len = nums.size();

        int sum = 0, k = len + 5;
        for(int i = 0, j = 0; i < len; i ++)
        {
            sum += nums[i];

            while(sum >= target && j <= i)
            {
                sum -= nums[j];
                j ++;

                if(sum < target) k = min(k, i - j + 2);
            }
        }

        if(k == len + 5) return 0;
        else return k;
    }
};

题目链接/文章讲解/视频讲解:
https://programmercarl.com/0209.长度最小的子数组.html



三、59.螺旋矩阵II

解题代码C++:

cpp 复制代码
class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {
        int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};
        vector<vector<int>> res(n, vector<int>(n));

        for(int k = 1, x = 0, y = 0, d = 0; k <= n * n; k ++)
        {
            res[x][y] = k;

            int a = x + dx[d], b = y + dy[d];

            if(a >= n || a < 0 || b >= n || b < 0 || res[a][b])
            {
                d = (d + 1) % 4;
                a = x + dx[d];
                b = y + dy[d];
            }

            x = a, y = b;
        }

        return res;
    }
};

题目链接/文章讲解/视频讲解:
https://programmercarl.com/0059.螺旋矩阵II.html

相关推荐
逆境不可逃14 小时前
LeetCode 热题 100 之 64. 最小路径和 5. 最长回文子串 1143. 最长公共子序列 72. 编辑距离
算法·leetcode·动态规划
Eward-an16 小时前
LeetCode 239. 滑动窗口最大值(详细技术解析)
python·算法·leetcode
一叶落43816 小时前
LeetCode 50. Pow(x, n)(快速幂详解 | C语言实现)
c语言·算法·leetcode
x_xbx17 小时前
LeetCode:26. 删除有序数组中的重复项
数据结构·算法·leetcode
j_xxx404_19 小时前
力扣困难算法精解:串联所有单词的子串与最小覆盖子串
java·开发语言·c++·算法·leetcode·哈希算法
big_rabbit050219 小时前
[算法][力扣167]Two Sum II
算法·leetcode·职场和发展
Eward-an20 小时前
LeetCode 76. 最小覆盖子串(详细技术解析)
python·算法·leetcode·职场和发展
不想看见40420 小时前
Reverse Bits位运算基础问题--力扣101算法题解笔记
笔记·算法·leetcode
逆境不可逃21 小时前
LeetCode 热题 100 之 394. 字符串解码 739. 每日温度 84. 柱状图中的最大矩形
算法·leetcode·职场和发展
重生之后端学习21 小时前
62. 不同路径
开发语言·数据结构·算法·leetcode·职场和发展·深度优先