代码随想录刷题day02-矩阵

代码随想录刷题-矩阵

977. 有序数组的平方

左右指针的经典应用

左右下标元素平方相比,大的放新数组右边,比较简单,不赘述

class Solution {
public:
vector<int> sortedSquares(vector<int> &nums) {
	int len = nums.size();
    vector<int> res(len, 0);
    int j = len - 1;
    int left = 0;
    int right = len - 1;
    while (left <= right) {
        int leftValue = pow(nums[left], 2);
        int rightValue = pow(nums[right], 2);
        if (leftValue < rightValue) {
            res[j--] = rightValue;
            right--;
        } else {
            res[j--] = leftValue;
            left++;
        }
    }
    return res;
}
};

209. 长度最小的子数组

注意审题是大于等于目标值,不是等于目标值

滑动窗口的题

思路是先加上最右边的值,然后再循环判断是否大于等目标值,若大于等于则计算比较长度,然后减去左值让左下标往右移

最后返回

class Solution {
public:
int minSubArrayLen(int target, vector<int> &nums) {
    int left = 0;
    int right = 0;
    int min = INT_MAX;
    int sum = 0;
    while (right < nums.size())
    {
        sum += nums[right];
        while (sum >= target)
        {
            int len = right - left + 1;
            min = min < len ? min : len;
            sum -= nums[left++];
        }   
        right++;
    }
    return min == INT_MAX ? 0 : min;
}
};

59. 螺旋矩阵 II

这一题主要是针对边界问题的探讨

先定圈数,在每一圈探讨每条行、边的值,然后再探讨中间值,看代码很容易看懂

class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
    vector<vector<int>> res(n, vector<int>(n, 0));
    int count = 1;
    for (int round = 1; round <= n / 2; round++) {
        for (int row = round - 1, column = round - 1; column < n - round; column++) {
            res[row][column] = count++;
        }
        for (int row = round - 1, column = n - round; row < n - round; row++) {
            res[row][column] = count++;
        }
        for (int row = n - round, column = n - round; column > round - 1; column--) {
            res[row][column] = count++;
        }
        for (int row = n - round, column = round - 1; row > round - 1; row--) {
            res[row][column] = count++;
        }
    }
    if (n % 2 == 1) {
        res[n / 2][n / 2] = count;
    }
    return res;
}
};

相关推荐

  1. 代码随想day02-矩阵

    2024-07-09 20:16:05       27 阅读
  2. 代码随想day10

    2024-07-09 20:16:05       18 阅读
  3. 代码随想day04

    2024-07-09 20:16:05       47 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-09 20:16:05       49 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-09 20:16:05       53 阅读
  3. 在Django里面运行非项目文件

    2024-07-09 20:16:05       42 阅读
  4. Python语言-面向对象

    2024-07-09 20:16:05       53 阅读

热门阅读

  1. ListView

    ListView

    2024-07-09 20:16:05      27 阅读
  2. SSL 证书

    2024-07-09 20:16:05       25 阅读
  3. HP打印机Er报错 (重新开始或恢复按钮 ↓)

    2024-07-09 20:16:05       18 阅读
  4. php简单实现利用飞书群里机器人推送消息的方法

    2024-07-09 20:16:05       22 阅读
  5. 终于弄明白了什么是EI!

    2024-07-09 20:16:05       20 阅读
  6. 期货量化交易:探索金融投资的新领域

    2024-07-09 20:16:05       26 阅读
  7. 探索金融数据API:现代投资的关键工具

    2024-07-09 20:16:05       24 阅读
  8. uniApp 封装VUEX

    2024-07-09 20:16:05       18 阅读
  9. H5与小程序:两者有何不同?

    2024-07-09 20:16:05       19 阅读