Leetcode周赛284(待补)

找出数组中的所有 K 近邻下标

thinking

简单模拟

solution

class Solution {
public:
    vector<int> findKDistantIndices(vector<int>& nums, int key, int k) {
        vector<int> ans;
        int n=nums.size();
        vector<int> vis(n,0);
        for(int i=0;i<n;++i) {
            if(key==nums[i]) {
                int left=i;int right=i;
                while(left>=0) {
                    if(i-left<=k) vis[left]=1;
                    else break;
                    --left;
                }
                while(right<n) {
                    if(right-i<=k) vis[right]=1;
                    else break;
                    ++right;
                }
            }    
        }
        for(int i=0;i<n;++i) {
            if(vis[i]) ans.push_back(i);
        }
        return ans;
    }
};

统计可以提取的工件

thinking

统计每一个工件有没有全被挖出来即可

solution

class Solution {
public:
    int digArtifacts(int n, vector<vector<int>>& a, vector<vector<int>>& dig) {
        int ans=0;
        vector<vector<int>> vis(n,vector<int>(n,0));
        for(auto &d:dig) {
            vis[d[0]][d[1]]=1;
        }
        for(auto &x:a) {
            bool ok=true;
            int x1=x[0],y1=x[1],x2=x[2],y2=x[3];
            for(int i=x1;i<=x2;++i) 
                for(int j=y1;j<=y2;++j)
                    if(vis[i][j]!=1) ok=false;
            if(ok) ++ans;
        }
        return ans;
    }
};

K 次操作后最大化顶端元素

thinking

贪心+分类讨论(此处参考

如果,数组元素为1,那么k等于奇数,就一定会空数组。如果k为偶数,那么数组停留的就会是\(nums[0]\)

否则,我们如此考虑

  • 取走前k-1个数,取最大值放回
  • 第k+1个数
  • 注意,第k位的数,一定不会出现在栈顶

读者会考虑到k大于n的情况,我们不妨将数组取完,然后通过加入取出消耗k,最后,将最大的元素放入栈内即可。

solution

int maximumTop(vector<int>& nums, int k) {
        int n=nums.size();
        if(n==1&&(k&1)) return -1;
        int maxnum=0;
        for(int i=0;i<n&&i+1<k;++i) {
            //查询前k-1个的最大值
            maxnum=max(maxnum,nums[i]);
        }
        if(k<n) {
            maxnum=max(maxnum,nums[k]);//与第k+1个数进行比较
        }
        return maxnum;
    }

得到要求路径的最小带权子图

thinking

最短路 枚举 参考

(最短路我竟然不会手写。。。先去进修反思了)

solution


posted @ 2022-03-13 18:52  圣道  阅读(52)  评论(0)    收藏  举报