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


    977. 有序数组的平方

    简单
    给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。

    示例 1:

    输入:nums = [-4,-1,0,3,10]
    输出:[0,1,9,16,100]
    解释:平方后,数组变为 [16,1,0,9,100]
    排序后,数组变为 [0,1,9,16,100]
    
    • 1
    • 2
    • 3
    • 4

    示例 2:

    输入:nums = [-7,-3,2,3,11]
    输出:[4,9,9,49,121]
    
    • 1
    • 2

    提示:

    1 <= nums.length <= 104
    -104 <= nums[i] <= 104
    nums 已按 非递减顺序 排序

    进阶:

    请你设计时间复杂度为 O(n) 的算法解决本问题

    代码

    class Solution {
    public:
        vector<int> sortedSquares(vector<int>& nums) {
            vector<int> res;
            int l=0,r=nums.size()-1;
            while(l<=r){
                int lt=nums[l] * nums[l];
                int rt=nums[r] * nums[r];
                if(rt < lt){
                    res.push_back(lt);
                    l++;
                }else{
                    res.push_back(rt);
                    r--;
                }
            }
            reverse(res.begin(),res.end());  //有点蠢
            return res;
        }
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    209. 长度最小的子数组

    中等
    给定一个含有 n 个正整数的数组和一个正整数 target 。

    找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。

    示例 1:

    输入:target = 7, nums = [2,3,1,2,4,3]
    输出:2
    解释:子数组 [4,3] 是该条件下的长度最小的子数组。
    
    • 1
    • 2
    • 3

    示例 2:

    输入:target = 4, nums = [1,4,4]
    输出:1
    
    • 1
    • 2

    示例 3:

    输入:target = 11, nums = [1,1,1,1,1,1,1,1]
    输出:0
    
    • 1
    • 2

    提示:

    1 <= target <= 109
    1 <= nums.length <= 105
    1 <= nums[i] <= 105

    进阶:

    如果你已经实现 O(n) 时间复杂度的解法, 请尝试设计一个 O(n log(n)) 时间复杂度的解法。

    代码

    class Solution {
    public:
        int minSubArrayLen(int target, vector<int>& nums) {
            int i=0,j=0;
            int sum=nums[0];
            int res=INT_MAX;
            while(i<nums.size() && j<nums.size()){
                if(sum >= target){
                    res=min(res,j-i+1);
                    while(sum >= target){
                        sum -= nums[i];
                        i++;
                        // 卡点
                        if(sum >= target) res=min(res,j-i+1);
                    }
                }else{
                    j++;
                    if(j<nums.size())
                        sum += nums[j];
                }
            }
            return res==INT_MAX?0:res;
        }
    };
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    1. 螺旋矩阵 II
      中等
      1.2K
      相关企业
      给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。

    示例 1:

    输入:n = 3
    输出:[[1,2,3],[8,9,4],[7,6,5]]
    
    • 1
    • 2

    示例 2:

    输入:n = 1
    输出:[[1]]
     
    
    • 1
    • 2
    • 3

    提示:

    1 <= n <= 20

    代码

    class Solution {
    public:
        vector<vector<int>> generateMatrix(int n) {
            vector<vector<int>> res(n, vector<int>(n));
    
            int count=1;int j;
            for(int i=0;i<=n/2;i++){
                for(j=i; j<n-i; j++)  res[i][j]=count++;
                for(j=i+1; j<n-i; j++)    res[j][n-1-i]=count++;
                for(j=n-2-i; j>=i; j--)   res[n-1-i][j]=count++;
                for(j=n-2-i; j>=i+1; j--)   res[j][i]=count++;
            }
            return res;
        }
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
  • 相关阅读:
    Java如何解析html里面的内容并存到数据库
    hypervisor相关的知识点
    Visual Studio主题颜色及字体
    Linux 查看文件
    Mybatis 日志(Apache Commons Logging)
    宅家30天,2万字节java高级工程师面试题解析,如何斩获阿里p7
    UML测试题(用例图基础a)
    新版 Next.js 从入门到入土
    CentOS7.x 设置 Java 开发运行环境
    高精度PWM脉宽调制信号转模拟信号隔离变送器1Hz~10KHz转0-5V/0-10V/1-5V/0-10mA/0-20mA/4-20mA
  • 原文地址:https://blog.csdn.net/qq_41735944/article/details/132742445