首页 > 其他分享 >day02 - 数组

day02 - 数组

时间:2023-08-10 17:44:43浏览次数:42  
标签:nums int day02 min len vector 数组 new

977. 有序数组的平方

//双指针
class Solution {
public:
    vector<int> sortedSquares(vector<int>& nums) {
        int i = 0;
        int j = nums.size() - 1;
        int k = j;
        vector<int> result(nums.size(), 0);
        for(; i <= j; ){
            if(nums[i] * nums[i] < nums[j] * nums[j]){
                result[k--] = nums[j] * nums[j];
                j--;
            }else{
                result[k--] = nums[i] * nums[i];
                i++;
            }
        }
        return result;
    }
};

  

209. 长度最小的子数组

//滑动
class Solution {
public:
    int minSubArrayLen(int target, vector<int>& nums) {
        int min_len = INT32_MAX;
        int i = 0, sum = 0;
        for(int j=0; j< nums.size(); j++){
            sum += nums[j];
            while(sum >= target){
                int sub_len = j - i + 1;
                min_len = min(min_len, sub_len);
                sum -= nums[i++];
            }
        }
        return min_len == INT32_MAX? 0:min_len;
    }
};

  

59. 螺旋矩阵 II

//模拟
class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {
        int direction[4][2] = {
            {0, 1},//右
            {1, 0},//下
            {0, -1},//左
            {-1, 0}//上
        };

        int now_direction = 0;

        vector<vector<int>> result(n, vector<int>(n, 0));

        int x = 0, y = 0;
        result[x][y] = 1;
        for(int k = 2; k <= n*n; k++){
            int new_x = x + direction[now_direction][0];
            int new_y = y + direction[now_direction][1];
            cout << x << "," << y << endl;
            if(new_x >= n || new_x < 0 || new_y >=n || new_y < 0 || result[new_x][new_y] > 0){
                now_direction = (++now_direction)%4;//拐弯
                cout << "now_direction:" << now_direction << endl;
                k--;//回退
                continue;
            }else{
                x = new_x;
                y = new_y;
                cout << "---" << x << "," << y << " = " << k << endl;
                result[x][y] = k;
            }
        }


        return result;
    }
};

  

     

标签:nums,int,day02,min,len,vector,数组,new
From: https://www.cnblogs.com/zqh2023/p/17621068.html

相关文章

  • LeetCode从算法到算命—1749.任意子数组和的绝对值的最大值
    1749.任意子数组和的绝对值的最大值题目信息给你一个整数数组nums。一个子数组[numsl,numsl+1,...,numsr-1,numsr]的和的绝对值为abs(numsl+numsl+1+...+numsr-1+numsr)。请你找出nums中和的绝对值最大的任意子数组(可能为空),并返回该最大值。abs(x)......
  • ACCESS 分享一个使用数组来批量操作控件属性的技巧
    原代码如下:PrivateSubComSave_Click()'保存按钮IfComSave.Caption="编辑(自动保存)"ThenMe.Text160.Locked=FalseMe.Text138.Locked=FalseMe.FM入库单.Form.数量.Locked=FalseMe.FM入库单.Form.单价.Locked=False......
  • 使数组和小于等于 x 的最少时间
    给你两个长度相等下标从0开始的整数数组nums1和nums2。每一秒,对于所有下标0<=i<nums1.length,nums1[i]的值都增加nums2[i]。操作完成后,你可以进行如下操作:选择任一满足0<=i<nums1.length的下标i,并使nums1[i]=0。同时给你一个整数x。请你返回使num......
  • php如何定义多维数组以某个字符去输出对应的值
    $arr=[['id'=>123,'test'=>['id'=>2,'title'=>"测试",'test3'=>['list'=>123]]]];$field="test.test3.list";foreach($ar......
  • 2018牛客多校第五场 F take[树状数组]
    理解题目画了一个二叉树,然后思维定势让我想构建一个有n层的二叉树,然后统计叶子节点。。有点恐怖。但是正解是考虑每一个箱子对答案的贡献。图片来自take_baymax520的博客对于每个箱子,它要发生交换也就是为答案贡献的条件是它当前宝石大小小于它的大小。对于比它小的宝石之前取......
  • 树状数组
    初步感受已知\(a_i\),求\(\sum_{i=1}^7a_i\)。暴力:\(ans=a_1+a_2+a_3+a_4+a_5+a_6+a_7\)时间复杂度:\(O(n)\)树状数组:已知\(A=\sum_{i=1}^4a_i\),\(B=\sum_{i=5}^6a_i\),\(C=\sum_{i=7}^7a_i\),则\(ans=A+B+C\)时间复杂度:\(O(\logn)\)这就是树状数组能快速求解信息的......
  • luogu P4200 千山鸟飞绝 题解 【一维数组套平衡树】
    目录题目解题思路code题目题目链接解题思路首先,此题有明显的插入、删除、查找,所以必须要使用平衡树。考虑如何使用平衡树维护每个鸟的状态。发现很不方便,因为鸟的位置改变,整个平衡树的值都要修改。考虑针对每个节点开一颗平衡树,这样就有\(3e4\times3e4\)棵树。这显然太多了......
  • TypeScript中使用数组的filter方法
    constarr:string[]=['pom','皮蛋编程','非常厉害','太棒了'];constfilteredArr:string[]=arr.filter((str:string)=>{returnstr.includes('编程');});console.log(filteredArr);//["皮蛋编程"] ar......
  • 2023-08-08:给你一棵 n 个节点的树(连通无向无环的图) 节点编号从 0 到 n - 1 且恰好有 n
    2023-08-08:给你一棵n个节点的树(连通无向无环的图)节点编号从0到n-1且恰好有n-1条边给你一个长度为n下标从0开始的整数数组vals分别表示每个节点的值同时给你一个二维整数数组edges其中edges[i]=[ai,bi]表示节点ai和bi之间有一条无向边一条好路......
  • 2023-08-08:给你一棵 n 个节点的树(连通无向无环的图) 节点编号从 0 到 n - 1 且恰好有 n
    2023-08-08:给你一棵n个节点的树(连通无向无环的图)节点编号从0到n-1且恰好有n-1条边给你一个长度为n下标从0开始的整数数组vals分别表示每个节点的值同时给你一个二维整数数组edges其中edges[i]=[ai,bi]表示节点ai和bi之间有一条无向边一条好路径需要......