zoukankan      html  css  js  c++  java
  • 周赛138场

     

    第一道题意我感觉有点奇怪。。。小伙伴都说2分钟能搞定,呃,如果想到怎么做,的确是蛮简单的。

    我的思路其实就是将heights从小到大排序,然后与原来的数一一进行对比,如果不相同说明位置站错了,sum加1。

    class Solution {
    public:
        int heightChecker(vector<int>& heights) {
            vector<int> checker(heights);
            int sum = 0;
            sort(checker.begin(), checker.end());
            for(int i=0; i<heights.size();i++){
                if(heights[i] != checker[i])
                    sum ++;
            }
            return sum;
        }
    };

    本来想着用动态规划来做,纠结了好久== ,被同学安利了一个简便的思路:先将customers和grumpy的对应位相乘,保存在一个vector c中,然后以X的个数为区间来遍历这个c中所有值(c的长度和customers的长度相同),找到最大的X个值。

    class Solution {
    public:
        int maxSatisfied(vector<int>& customers, vector<int>& grumpy, int X) {
            int size = customers.size();
            vector<int> c(size, 0);
            int sum = 0;
            for(int i=0; i< size;i++){
                if(grumpy[i]==0){
                    sum += customers[i];
                }
                else{
                    c[i] = customers[i];
                }
            }
            int s1=0, s2 = 0;
            int x = 0;
            for(int j=0; j<size; j++){
                s1 += c[j];
                x ++;
                if(x == X){
                    s2 = max(s2, s1);
                    x --;
                    s1 -= c[j-X+1];
                }
            }
            sum += s2;
            return sum;
        }
    };
  • 相关阅读:
    关于切图的一道题目
    spm3 基本
    简易路由操作
    IOS 技术层概览
    IOS -C基础
    prototype演变
    css3选择器总结
    Python核心编程(第二版) 第五章习题答案
    Python核心编程(第二版) 第四章习题答案
    Python核心编程(第二版) 第三章习题答案
  • 原文地址:https://www.cnblogs.com/Bella2017/p/10926191.html
Copyright © 2011-2022 走看看