题目:
给你一个数组 arr ,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1 替换。
完成所有替换操作后,请你返回这个数组。
示例:
输入:arr = [17,18,5,4,6,1]
输出:[18,6,6,6,1,-1]来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/replace-elements-with-greatest-element-on-right-side
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
遍历,shift一个数,利用Math.max.apply(null,arr) 求最大值。
代码:
/**
* @param {number[]} arr
* @return {number[]}
*/
var replaceElements = function(arr) {
var c=[];
var len=arr.length;
for(i=0;i<len;i++){
var d=arr.shift();
if(i==len-1) {
c.push(-1);
break;
}
var max=Math.max.apply(null,arr);
c.push(max);
}
return c;
};