糖逗 发表于 2020-5-18 14:04:02

C++刷leetcode(1299. 将每个元素替换为右侧最大元素)【数据结构】

本帖最后由 糖逗 于 2020-5-18 16:01 编辑

题目描述:

给你一个数组 arr ,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1 替换。

完成所有替换操作后,请你返回这个数组。



示例:

输入:arr =
输出:


提示:

1 <= arr.length <= 10^4
1 <= arr <= 10^5


class Solution {
public:
    vector<int> replaceElements(vector<int>& arr) {
      int temp2 = arr;
      int temp3 = -1;
      for(int i = arr.size()-2; i >= 0; i--){
            temp3 = max(temp2, temp3);
            temp2 = arr;
            arr = temp3;

      }
      arr = -1;
      return arr;
    }
};

注意事项:
1.从右向左遍历。

永恒的蓝色梦想 发表于 2020-5-18 14:24:24

本帖最后由 永恒的蓝色梦想 于 2020-5-18 14:29 编辑

这题没啥难度class Solution {
public:
    vector<int> replaceElements(vector<int>& arr) {
      int max=-1,temp;

      for(auto end=arr.rbegin();end!=arr.rend();end++){
            if(*end>max){
                temp=max;
                max=*end;
                *i=temp;
            }
            else{
                *end=max;
            }
      }

      return arr;
    }
};

永恒的蓝色梦想 发表于 2020-5-18 14:29:22

再给个C{:10_256:}int* replaceElements(int* arr, int arrSize, int* returnSize){
    int max=-1,temp,*end=arr+arrSize;
    *returnSize=arrSize;

    while(end--!=arr){
      if(*end>max){
            temp=max;
            max=*end;
            *end=temp;
      }
      else{
            *end=max;
      }
    }

    return arr;
}

糖逗 发表于 2020-5-18 15:58:18

永恒的蓝色梦想 发表于 2020-5-18 14:29
再给个C

我才发现我代码忘加上去了{:10_266:}

永恒的蓝色梦想 发表于 2020-5-18 15:59:25

糖逗 发表于 2020-5-18 15:58
我才发现我代码忘加上去了

{:10_256:}

糖逗 发表于 2020-5-23 18:23:22

结合之前这道题https://fishc.com.cn/thread-170013-1-1.html
页: [1]
查看完整版本: C++刷leetcode(1299. 将每个元素替换为右侧最大元素)【数据结构】