zoukankan      html  css  js  c++  java
  • 1299. 将每个元素替换为右侧最大元素

    题目:给你一个数组 arr ,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1 替换。完成所有替换操作后,请你返回这个数组。

    示例 :

    输入:arr = [17,18,5,4,6,1]
    输出:[18,6,6,6,1,-1]
    解释:
    - 下标 0 的元素 --> 右侧最大元素是下标 1 的元素 (18)
    - 下标 1 的元素 --> 右侧最大元素是下标 4 的元素 (6)
    - 下标 2 的元素 --> 右侧最大元素是下标 4 的元素 (6)
    - 下标 3 的元素 --> 右侧最大元素是下标 4 的元素 (6)
    - 下标 4 的元素 --> 右侧最大元素是下标 5 的元素 (1)
    - 下标 5 的元素 --> 右侧没有其他元素,替换为 -1

    1.原创

    class Solution {
    public:
        int maxofvector(vector<int>& temp){
                int res = 0;
                for (int i=0;i<temp.size();++i){
                    if (temp[i]>res)
                        res = temp[i];
                }
                return res;
            }
        vector<int> replaceElements(vector<int>& arr) {
            vector<int> res;
            if (arr.size()==1){
                res.push_back(-1);
                return res;
            }
            for (int i=0;i<arr.size()-1;++i){
               vector<int>::const_iterator first = arr.begin()+i+1;
               vector<int>::const_iterator last  = arr.end();
               vector<int> cut_vector(first, last);
               res.push_back(maxofvector(cut_vector));
            }
            res.push_back(-1);
            return res;
            
    
        }
    };

    2.题解

    class Solution {
    public:
        vector<int> replaceElements(vector<int>& arr) {
            int n = arr.size();
            vector<int> ans(n);
            ans[n - 1] = -1;
            for (int i = n - 2; i >= 0; --i) {
                ans[i] = max(ans[i + 1], arr[i + 1]);
            }
            return ans;
        }
    };
    
    作者:LeetCode-Solution
    链接:https://leetcode-cn.com/problems/replace-elements-with-greatest-element-on-right-side/solution/jiang-mei-ge-yuan-su-ti-huan-wei-you-ce-zui-da-y-5/
  • 相关阅读:
    1143 Lowest Common Ancestor (30)
    PAT 1135 Is It A Red-Black Tree
    PAT 1119 Pre- and Post-order Traversals
    1102 Invert a Binary Tree(25 分)
    PAT总结
    c++ getline的用法
    PAT 1049 Counting Ones (30)
    PAT 1022 Digital Library (30)
    java jar包
    NIO的理解
  • 原文地址:https://www.cnblogs.com/USTC-ZCC/p/14468438.html
Copyright © 2011-2022 走看看